scipion-em-xmipp 25.6.1__tar.gz → 26.0.0__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 (268) hide show
  1. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/CHANGELOG.md +15 -2
  2. {scipion_em_xmipp-25.6.1/scipion_em_xmipp.egg-info → scipion_em_xmipp-26.0.0}/PKG-INFO +5 -2
  3. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/requirements.txt +2 -1
  4. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0/scipion_em_xmipp.egg-info}/PKG-INFO +5 -2
  5. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/scipion_em_xmipp.egg-info/SOURCES.txt +6 -1
  6. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/scipion_em_xmipp.egg-info/requires.txt +2 -0
  7. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/__init__.py +12 -12
  8. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/constants.py +1 -1
  9. scipion_em_xmipp-26.0.0/xmipp3/legacy/protocols/__init__.py +0 -0
  10. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/tests/test_protocols_xmipp_movies.py +134 -0
  11. scipion_em_xmipp-26.0.0/xmipp3/logParser.py +53 -0
  12. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/__init__.py +1 -1
  13. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_align_volume.py +1 -1
  14. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_align_volume_and_particles.py +18 -10
  15. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_break_symmetry.py +5 -5
  16. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_classify_pca.py +21 -21
  17. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_classify_pca_streaming.py +18 -10
  18. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_compare_reprojections.py +2 -2
  19. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_compute_likelihood.py +1 -1
  20. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_convert_pdb.py +1 -1
  21. scipion_em_xmipp-26.0.0/xmipp3/protocols/protocol_ctf_correct_phase.py +89 -0
  22. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_ctf_micrographs.py +0 -4
  23. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_deep_center.py +21 -10
  24. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_deep_center_predict.py +18 -8
  25. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_deep_hand.py +1 -1
  26. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_deep_micrograph_screen.py +23 -9
  27. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_extract_asymmetric_unit.py +21 -11
  28. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_extract_particles.py +1 -1
  29. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_movie_alignment_consensus.py +1 -1
  30. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_movie_max_shift.py +18 -12
  31. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_movie_split_frames.py +1 -1
  32. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_particle_pick_consensus.py +1 -1
  33. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_preprocess/protocol_create_mask3d.py +6 -6
  34. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_preprocess/protocol_crop_resize.py +23 -5
  35. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_preprocess/protocol_process.py +1 -1
  36. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_ransac.py +1 -1
  37. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_reconstruct_highres.py +32 -56
  38. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_reconstruct_significant.py +1 -1
  39. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_reconstruct_swarm.py +10 -10
  40. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_resolution3d.py +34 -29
  41. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_resolution_fso.py +1 -1
  42. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_resolution_monogenic_signal.py +1 -1
  43. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_screen_deepConsensus.py +22 -27
  44. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_shift_particles.py +6 -7
  45. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_shift_volume.py +23 -4
  46. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_simulate_ctf.py +1 -1
  47. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_subtract_projection.py +1 -1
  48. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_validate_fscq.py +1 -1
  49. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_volume_adjust_sub.py +1 -1
  50. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_volume_strain.py +4 -4
  51. scipion_em_xmipp-26.0.0/xmipp3/protocolsCollectInfo.py +280 -0
  52. scipion_em_xmipp-26.0.0/xmipp3/tests/__init__.py +0 -0
  53. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocols_highres.py +1 -1
  54. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocols_xmipp_2d.py +11 -17
  55. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocols_xmipp_3d.py +3 -3
  56. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocols_xmipp_movies.py +10 -149
  57. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/version.py +13 -6
  58. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_consensus_classes.py +18 -4
  59. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_structure_map.py +166 -5
  60. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/LICENSE +0 -0
  61. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/MANIFEST.in +0 -0
  62. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/README.md +0 -0
  63. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/pyproject.toml +0 -0
  64. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/scipion_em_xmipp.egg-info/dependency_links.txt +0 -0
  65. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/scipion_em_xmipp.egg-info/entry_points.txt +0 -0
  66. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/scipion_em_xmipp.egg-info/top_level.txt +0 -0
  67. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/setup.cfg +0 -0
  68. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/base.py +0 -0
  69. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/bibtex.py +0 -0
  70. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/checkProtocolsConf.py +0 -0
  71. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/convert/__init__.py +0 -0
  72. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/convert/convert.py +0 -0
  73. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/convert/dataimport.py +0 -0
  74. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/convert/io_coordinates.py +0 -0
  75. {scipion_em_xmipp-25.6.1/xmipp3/tests → scipion_em_xmipp-26.0.0/xmipp3/legacy}/__init__.py +0 -0
  76. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_angular_resolution_alignment.py +0 -0
  77. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_apply_deformation_zernike3d.py +0 -0
  78. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_classification_gpuCorr.py +0 -0
  79. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_classification_gpuCorr_full.py +0 -0
  80. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_classification_gpuCorr_semi.py +0 -0
  81. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_classify_kmeans2d.py +0 -0
  82. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_deep_align.py +0 -0
  83. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_deep_denoising.py +0 -0
  84. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_enrich.py +0 -0
  85. {scipion_em_xmipp-25.6.1/xmipp3 → scipion_em_xmipp-26.0.0/xmipp3/legacy}/protocols/protocol_extract_particles_movies.py +0 -0
  86. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_kmeans_clustering.py +0 -0
  87. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_metaprotocol_create_output.py +0 -0
  88. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_metaprotocol_create_subset.py +0 -0
  89. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_metaprotocol_discrete_heterogeneity_scheduler.py +0 -0
  90. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_metaprotocol_golden_highres.py +0 -0
  91. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_mltomo.py +0 -0
  92. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_movie_average.py +0 -0
  93. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_movie_opticalflow.py +0 -0
  94. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_particle_boxsize.py +0 -0
  95. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_reconstruct_heterogeneous.py +0 -0
  96. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_rotational_spectra.py +0 -0
  97. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_screen_deeplearning.py +0 -0
  98. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_solid_angles.py +0 -0
  99. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_split_volume.py +0 -0
  100. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_split_volume_hierarchical_cluster.py +0 -0
  101. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/protocols/protocol_subtract_projection.py +0 -0
  102. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/tests/test_protocol_deep_denoising.py +0 -0
  103. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/tests/test_protocols_angular_resolution_alignment.py +0 -0
  104. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/tests/test_protocols_gpuCorr_classifier.py +0 -0
  105. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/tests/test_protocols_gpuCorr_fullStreaming.py +0 -0
  106. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/tests/test_protocols_gpuCorr_semiStreaming.py +0 -0
  107. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/tests/test_protocols_metaprotocol_golden_highres.py +0 -0
  108. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/tests/test_protocols_metaprotocol_heterogeneity.py +0 -0
  109. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/tests/test_protocols_mixed_movies.py +0 -0
  110. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/tests/test_protocols_solid_angles.py +0 -0
  111. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/tests/test_protocols_subtract_projection.py +0 -0
  112. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/viewers/viewer_angular_resolution_alignment.py +0 -0
  113. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/viewers/viewer_deep_align.py +0 -0
  114. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/viewers/viewer_metaprotocol_golden_highres.py +0 -0
  115. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/viewers/viewer_mltomo.py +0 -0
  116. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/viewers/viewer_solid_angles.py +0 -0
  117. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/legacy/viewers/viewer_split_volume.py +0 -0
  118. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/programs.py +0 -0
  119. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_analyze_local_ctf.py +0 -0
  120. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_angular_graph_consistency.py +0 -0
  121. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_apply_alignment.py +0 -0
  122. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_apply_tilt_to_ctf.py +0 -0
  123. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_apply_transformation_matrix.py +0 -0
  124. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_apply_zernike3d.py +0 -0
  125. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_assignment_tilt_pair.py +0 -0
  126. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_center_particles.py +0 -0
  127. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_cl2d.py +0 -0
  128. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_cl2d_align.py +0 -0
  129. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_cl2d_clustering.py +0 -0
  130. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_classes_2d_mapping.py +0 -0
  131. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_compare_angles.py +0 -0
  132. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_consensus_classes.py +0 -0
  133. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_consensus_local_ctf.py +0 -0
  134. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_core_analysis.py +0 -0
  135. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_create_gallery.py +0 -0
  136. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_ctf_consensus.py +0 -0
  137. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_ctf_correct_wiener2d.py +0 -0
  138. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_ctf_defocus_group.py +0 -0
  139. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_denoise_particles.py +0 -0
  140. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_eliminate_empty_images.py +0 -0
  141. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_extract_particles_pairs.py +0 -0
  142. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_flexalign.py +0 -0
  143. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_generate_reprojections.py +0 -0
  144. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_helical_parameters.py +0 -0
  145. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_kerdensom.py +0 -0
  146. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_local_ctf.py +0 -0
  147. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_mics_defocus_balancer.py +0 -0
  148. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_ml2d.py +0 -0
  149. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_movie_dose_analysis.py +0 -0
  150. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_movie_gain.py +0 -0
  151. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_multiple_fscs.py +0 -0
  152. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_multireference_alignability.py +0 -0
  153. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_normalize_strain.py +0 -0
  154. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_particle_pick.py +0 -0
  155. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_particle_pick_automatic.py +0 -0
  156. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_particle_pick_pairs.py +0 -0
  157. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_particle_pick_remove_duplicates.py +0 -0
  158. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_phantom_create.py +0 -0
  159. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_pick_noise.py +0 -0
  160. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_postProcessing_deepPostProcessing.py +0 -0
  161. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_preprocess/__init__.py +0 -0
  162. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_preprocess/geometrical_mask.py +0 -0
  163. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_preprocess/protocol_add_noise.py +0 -0
  164. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_preprocess/protocol_create_mask2d.py +0 -0
  165. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_preprocess/protocol_filter.py +0 -0
  166. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_preprocess/protocol_image_operate.py +0 -0
  167. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_preprocess/protocol_mask.py +0 -0
  168. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_preprocess/protocol_movie_resize.py +0 -0
  169. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_preprocess/protocol_preprocess.py +0 -0
  170. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_preprocess_micrographs.py +0 -0
  171. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_projmatch/__init__.py +0 -0
  172. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_projmatch/projmatch_form.py +0 -0
  173. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_projmatch/projmatch_initialize.py +0 -0
  174. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_projmatch/projmatch_steps.py +0 -0
  175. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_projmatch/protocol_projmatch.py +0 -0
  176. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_random_conical_tilt.py +0 -0
  177. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_reconstruct_fourier.py +0 -0
  178. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_resolution_bfactor.py +0 -0
  179. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_resolution_deepres.py +0 -0
  180. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_resolution_directional.py +0 -0
  181. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_rotate_volume.py +0 -0
  182. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_rotational_symmetry.py +0 -0
  183. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_screen_particles.py +0 -0
  184. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_structure_map.py +0 -0
  185. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_structure_map_zernike3d.py +0 -0
  186. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_tilt_analysis.py +0 -0
  187. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_trigger_data.py +0 -0
  188. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_validate_nontilt.py +0 -0
  189. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_validate_overfitting.py +0 -0
  190. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_volume_consensus.py +0 -0
  191. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_volume_deform_zernike3d.py +0 -0
  192. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_volume_local_adjust.py +0 -0
  193. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_volume_local_sharpening.py +0 -0
  194. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_write_testC.py +0 -0
  195. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols/protocol_write_testP.py +0 -0
  196. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/protocols.conf +0 -0
  197. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_convert_xmipp.py +0 -0
  198. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocol_angular_graph_consistency.py +0 -0
  199. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocol_apply_transformation_matrix.py +0 -0
  200. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocol_compare_angles.py +0 -0
  201. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocol_consensus_classes3D.py +0 -0
  202. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocol_ctf_consensus.py +0 -0
  203. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocol_extract_asymmetric_unit.py +0 -0
  204. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocol_likelihood.py +0 -0
  205. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocol_monodir.py +0 -0
  206. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocol_multiple_fsc.py +0 -0
  207. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocol_multireference_alignability.py +0 -0
  208. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocol_reconstruct_fourier.py +0 -0
  209. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocol_screen_deepConsensus.py +0 -0
  210. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocol_simulate_ctf.py +0 -0
  211. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocol_split_frames.py +0 -0
  212. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocol_validate_fscq.py +0 -0
  213. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocol_validate_overfitting.py +0 -0
  214. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocols_add_noise.py +0 -0
  215. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocols_continuousflex.py +0 -0
  216. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocols_deepVolPostprocessing.py +0 -0
  217. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocols_deepcenter_predict.py +0 -0
  218. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocols_deepres.py +0 -0
  219. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocols_fso.py +0 -0
  220. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocols_local_defocus.py +0 -0
  221. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocols_localdeblur.py +0 -0
  222. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocols_monores.py +0 -0
  223. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocols_realignment_classes.py +0 -0
  224. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocols_xmipp_mics.py +0 -0
  225. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocols_xmipp_movie_resize.py +0 -0
  226. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/tests/test_protocols_zernike3d.py +0 -0
  227. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/utils.py +0 -0
  228. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/__init__.py +0 -0
  229. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/plotter.py +0 -0
  230. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer.py +0 -0
  231. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_LL_matrix.py +0 -0
  232. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_analyze_local_ctf.py +0 -0
  233. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_apply_tilt_to_ctf.py +0 -0
  234. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_cl2d.py +0 -0
  235. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_cl2d_clustering.py +0 -0
  236. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_ctf_consensus.py +0 -0
  237. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_deepEMHancer.py +0 -0
  238. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_deep_consensus.py +0 -0
  239. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_deep_micrograph_cleaner.py +0 -0
  240. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_dose_analysis.py +0 -0
  241. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_eliminate_empty_images.py +0 -0
  242. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_extract_asymmetric_unit.py +0 -0
  243. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_local_sharpening.py +0 -0
  244. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_ml2d.py +0 -0
  245. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_movie_alignment.py +0 -0
  246. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_normalize_strain.py +0 -0
  247. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_pdb_deform_zernike3d.py +0 -0
  248. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_projmatch.py +0 -0
  249. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_ransac.py +0 -0
  250. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_reconstruct_highres.py +0 -0
  251. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_resolution3d.py +0 -0
  252. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_resolution_bfactor.py +0 -0
  253. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_resolution_deepres.py +0 -0
  254. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_resolution_directional.py +0 -0
  255. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_resolution_fso.py +0 -0
  256. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_resolution_monogenic_signal.py +0 -0
  257. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_subtract_projection.py +0 -0
  258. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_swarm.py +0 -0
  259. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_validate_fscq.py +0 -0
  260. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_validate_nontilt.py +0 -0
  261. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_validate_overfitting.py +0 -0
  262. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_volume_consensus.py +0 -0
  263. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_volume_deform_zernike3d.py +0 -0
  264. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_volume_strain.py +0 -0
  265. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/viewers/viewer_volume_subtraction.py +0 -0
  266. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/wizards.py +0 -0
  267. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/xmipp_logo.png +0 -0
  268. {scipion_em_xmipp-25.6.1 → scipion_em_xmipp-26.0.0}/xmipp3/xmipp_logo_devel.png +0 -0
@@ -1,5 +1,18 @@
1
- ## Release 3.25.06.1 - Rhea
2
- - Disabling the default installation of dependencies to prevent breaking the scipion environment
1
+ ## Release 4.0.0
2
+ - Protocols updated
3
+ - deep_micrograph_screen: updated enviroment to tensorFlow2 and models updated to
4
+ - movie_max_shif: Change the criteria to evaluate the shift
5
+ - crop_resize: Crop/Resize half maps too, if they are available
6
+ - resolution3D: The FSC can be computed now using the two halves
7
+ - align_volume_and_particles: Allow considering mirrors in align volume and particles
8
+
9
+ - More scipion-em-xmipp
10
+ - Disable xmippDep by default (the dependencies will not be installed by default in the Scipion environment), but installing just the libstdcxx dependence
11
+ - Script to generate the protocols map (https://i2pc.github.io/docs/protocolsMap.html#)
12
+ - Remove Relion dependency from TestXmippDenoiseParticles
13
+ - parse json to report summary installation errors
14
+ - View all classes added for XmippProtConsensusClasses
15
+
3
16
 
4
17
  ## Release 3.25.06.0 - Rhea
5
18
  - New protocols
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: scipion-em-xmipp
3
- Version: 25.6.1
3
+ Version: 26.0.0
4
4
  Summary: Plugin to use Xmipp programs within the Scipion framework.
5
5
  Author-email: Oier Lauzirika Zarrabeitia <oierlauzi@bizkaia.eu>, Alberto Garcia Mena <alberto.garcia@cnb.csic.es>, Carlos Oscar Sanchez Sorzano <coss@cnb.csic.es>
6
6
  License: GNU General Public License v3 (GPLv3)
@@ -20,6 +20,9 @@ Requires-Dist: joblib
20
20
  Requires-Dist: peppercorn
21
21
  Requires-Dist: plotter
22
22
  Requires-Dist: PyWavelets
23
+ Requires-Dist: xmipp3-installer==2.*
24
+ Requires-Dist: numpy==1.*
25
+ Dynamic: license-file
23
26
 
24
27
  [![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)
25
28
 
@@ -8,4 +8,5 @@ joblib
8
8
  peppercorn
9
9
  plotter
10
10
  PyWavelets
11
-
11
+ xmipp3-installer==2.*
12
+ numpy==1.*
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: scipion-em-xmipp
3
- Version: 25.6.1
3
+ Version: 26.0.0
4
4
  Summary: Plugin to use Xmipp programs within the Scipion framework.
5
5
  Author-email: Oier Lauzirika Zarrabeitia <oierlauzi@bizkaia.eu>, Alberto Garcia Mena <alberto.garcia@cnb.csic.es>, Carlos Oscar Sanchez Sorzano <coss@cnb.csic.es>
6
6
  License: GNU General Public License v3 (GPLv3)
@@ -20,6 +20,9 @@ Requires-Dist: joblib
20
20
  Requires-Dist: peppercorn
21
21
  Requires-Dist: plotter
22
22
  Requires-Dist: PyWavelets
23
+ Requires-Dist: xmipp3-installer==2.*
24
+ Requires-Dist: numpy==1.*
25
+ Dynamic: license-file
23
26
 
24
27
  [![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)
25
28
 
@@ -15,8 +15,10 @@ xmipp3/base.py
15
15
  xmipp3/bibtex.py
16
16
  xmipp3/checkProtocolsConf.py
17
17
  xmipp3/constants.py
18
+ xmipp3/logParser.py
18
19
  xmipp3/programs.py
19
20
  xmipp3/protocols.conf
21
+ xmipp3/protocolsCollectInfo.py
20
22
  xmipp3/utils.py
21
23
  xmipp3/version.py
22
24
  xmipp3/wizards.py
@@ -26,6 +28,8 @@ xmipp3/convert/__init__.py
26
28
  xmipp3/convert/convert.py
27
29
  xmipp3/convert/dataimport.py
28
30
  xmipp3/convert/io_coordinates.py
31
+ xmipp3/legacy/__init__.py
32
+ xmipp3/legacy/protocols/__init__.py
29
33
  xmipp3/legacy/protocols/protocol_angular_resolution_alignment.py
30
34
  xmipp3/legacy/protocols/protocol_apply_deformation_zernike3d.py
31
35
  xmipp3/legacy/protocols/protocol_classification_gpuCorr.py
@@ -35,6 +39,7 @@ xmipp3/legacy/protocols/protocol_classify_kmeans2d.py
35
39
  xmipp3/legacy/protocols/protocol_deep_align.py
36
40
  xmipp3/legacy/protocols/protocol_deep_denoising.py
37
41
  xmipp3/legacy/protocols/protocol_enrich.py
42
+ xmipp3/legacy/protocols/protocol_extract_particles_movies.py
38
43
  xmipp3/legacy/protocols/protocol_kmeans_clustering.py
39
44
  xmipp3/legacy/protocols/protocol_metaprotocol_create_output.py
40
45
  xmipp3/legacy/protocols/protocol_metaprotocol_create_subset.py
@@ -95,6 +100,7 @@ xmipp3/protocols/protocol_convert_pdb.py
95
100
  xmipp3/protocols/protocol_core_analysis.py
96
101
  xmipp3/protocols/protocol_create_gallery.py
97
102
  xmipp3/protocols/protocol_ctf_consensus.py
103
+ xmipp3/protocols/protocol_ctf_correct_phase.py
98
104
  xmipp3/protocols/protocol_ctf_correct_wiener2d.py
99
105
  xmipp3/protocols/protocol_ctf_defocus_group.py
100
106
  xmipp3/protocols/protocol_ctf_micrographs.py
@@ -106,7 +112,6 @@ xmipp3/protocols/protocol_denoise_particles.py
106
112
  xmipp3/protocols/protocol_eliminate_empty_images.py
107
113
  xmipp3/protocols/protocol_extract_asymmetric_unit.py
108
114
  xmipp3/protocols/protocol_extract_particles.py
109
- xmipp3/protocols/protocol_extract_particles_movies.py
110
115
  xmipp3/protocols/protocol_extract_particles_pairs.py
111
116
  xmipp3/protocols/protocol_flexalign.py
112
117
  xmipp3/protocols/protocol_generate_reprojections.py
@@ -8,3 +8,5 @@ joblib
8
8
  peppercorn
9
9
  plotter
10
10
  PyWavelets
11
+ xmipp3-installer==2.*
12
+ numpy==1.*
@@ -45,8 +45,6 @@ NVIDIA_DRIVERS_MINIMUM_VERSION = 450
45
45
 
46
46
  type_of_version = version.type_of_version
47
47
  _logo = version._logo
48
- _binTagVersion = version._binTagVersion
49
- _pluginTagVersion= version._pluginTagVersion
50
48
  _currentDepVersion = version._currentDepVersion
51
49
  __version__ = version.__version__
52
50
 
@@ -151,30 +149,33 @@ class Plugin(pwem.Plugin):
151
149
 
152
150
  # When changing dependencies, increment _currentDepVersion
153
151
  CONDA_DEPENDENCIES = [
154
- "'cmake>=3.18,<4'", #cmake-4 is not compatible with Relion compilation
152
+ "'cmake>=3.18,<4'", #cmake-4 is not compatible with Relion compilation
155
153
  "hdf5>=1.18",
156
154
  "sqlite>=3",
157
155
  "fftw>=3",
158
156
  "make",
159
157
  "zlib",
160
158
  "openjdk",
161
- "libtiff",
162
- "libstdcxx-ng",
159
+ "'libtiff<=4.5.1'",
163
160
  "libjpeg-turbo",
164
161
  ]
162
+
163
+ CONDA_LIBSTDCXX_PACKAGE = "libstdcxx-ng"
164
+
165
165
  if Config.isCondaInstallation():
166
166
  condaEnvPath = os.environ['CONDA_PREFIX']
167
167
  scipionEnv=os.path.basename(condaEnvPath) # TODO: use pyworkflow method when released: Config.getEnvName()
168
168
 
169
169
  commands = CondaCommandDef(scipionEnv, cls.getCondaActivationCmd())
170
- commands.condaInstall('-c conda-forge --yes ' + ' '.join(CONDA_DEPENDENCIES))
170
+ #commands.condaInstall('-c conda-forge --yes ' + ' '.join(CONDA_DEPENDENCIES))
171
+ commands.condaInstall('-c conda-forge --yes ' + CONDA_LIBSTDCXX_PACKAGE)
171
172
  commands.touch("deps_installed.txt")
172
173
  env.addPackage(
173
174
  'xmippDep', version=_currentDepVersion,
174
175
  tar='void.tgz',
175
176
  commands=commands.getCommands(),
176
177
  neededProgs=['conda'],
177
- default=False
178
+ default=True
178
179
  )
179
180
 
180
181
  if develMode:
@@ -196,16 +197,15 @@ class Plugin(pwem.Plugin):
196
197
  default=False
197
198
  )
198
199
  else:
199
- xmippSrc = f'xmippSrc-{version._binTagVersion}'
200
+ xmippSrc = f'xmipp3-{version._binVersion}'
200
201
  installCommands = [
201
202
  (f'cd .. && rm -rf {xmippSrc} && '
202
- f'git clone {XMIPP_GIT_URL} {xmippSrc} && '
203
+ f'git clone {XMIPP_GIT_URL} -b {version._binVersion} {xmippSrc} && '
203
204
  f'cd {xmippSrc} && '
204
- f'git checkout {version._binTagVersion} && '
205
205
  f'./xmipp --production True ', COMPILE_TARGETS)
206
206
  ]
207
207
  env.addPackage(
208
- 'xmippSrc', version=version._binTagVersion,
208
+ 'xmipp3', version=version._binVersion,
209
209
  tar='void.tgz',
210
210
  commands=installCommands,
211
211
  neededProgs=['git', 'gcc', 'g++', 'cmake', 'make'],
@@ -225,7 +225,7 @@ class Plugin(pwem.Plugin):
225
225
 
226
226
  isBundle = (os.path.isdir(os.path.join(bundleDir, 'src')) and
227
227
  os.path.isfile(os.path.join(bundleDir, 'xmipp')))
228
-
228
+ print(f'pluginDir: {pluginDir}\n, bundleDir: {bundleDir}\n, isBundle: {isBundle}')
229
229
  return bundleDir if isBundle else None
230
230
 
231
231
  def getNvidiaDriverVersion(plugin):
@@ -28,7 +28,7 @@ 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
+ XMIPP_GIT_URL = 'https://github.com/I2PC/xmipp3.git'
32
32
  XMIPP_URL = 'https://github.com/i2pc/scipion-em-xmipp'
33
33
  XMIPP_HOME = 'XMIPP_HOME'
34
34
  NMA_HOME = 'NMA_HOME'
@@ -227,3 +227,137 @@ class TestOFAlignment2(TestXmippBase):
227
227
  "been created.")
228
228
 
229
229
 
230
+ class TestExtractMovieParticles(BaseTest):
231
+ @classmethod
232
+ def setData(cls):
233
+ cls.ds = DataSet.getDataSet('movies')
234
+
235
+ @classmethod
236
+ def runImportMovies(cls, pattern, **kwargs):
237
+ """ Run an Import micrograph protocol. """
238
+ # We have two options: passe the SamplingRate or
239
+ # the ScannedPixelSize + microscope magnification
240
+ params = {'samplingRate': 1.14,
241
+ 'voltage': 300,
242
+ 'sphericalAberration': 2.7,
243
+ 'magnification': 50000,
244
+ 'scannedPixelSize': None,
245
+ 'filesPattern': pattern
246
+ }
247
+ if 'samplingRate' not in kwargs:
248
+ del params['samplingRate']
249
+ params['samplingRateMode'] = 0
250
+ else:
251
+ params['samplingRateMode'] = 1
252
+
253
+ params.update(kwargs)
254
+
255
+ protImport = cls.newProtocol(ProtImportMovies, **params)
256
+ cls.launchProtocol(protImport)
257
+ return protImport
258
+
259
+ @classmethod
260
+ def setUpClass(cls):
261
+ setupTestProject(cls)
262
+ cls.setData()
263
+ cls.protImport1 = cls.runImportMovies(
264
+ cls.ds.getFile('qbeta/qbeta.mrc'),
265
+ magnification=50000)
266
+ cls.protImport2 = cls.runImportMovies(cls.ds.getFile('cct/cct_1.em'),
267
+ magnification=61000)
268
+
269
+ # def _checkMicrographs(self, protocol, goldDimensions):
270
+ # self.assertIsNotNone(getattr(protocol, 'outputMicrographs', None),
271
+ # "Output SetOfMicrographs were not created.")
272
+ # mic = protocol.outputMicrographs[1]
273
+ # x, y, _ = mic.getDim()
274
+ # dims = (x, y)
275
+ # msgError = "The dimensions must be %s and it is %s"
276
+ # self.assertEqual(goldDimensions, dims,
277
+ # msgError % (goldDimensions, dims))
278
+ #
279
+ def _checkAlignment(self, movie, goldRange, goldRoi):
280
+ alignment = movie.getAlignment()
281
+ range = alignment.getRange()
282
+ msgRange = "Alignment range must be %s %s and it is %s (%s)"
283
+ self.assertEqual(goldRange, range,
284
+ msgRange % (
285
+ goldRange, range, type(goldRange), type(range)))
286
+ roi = alignment.getRoi()
287
+ msgRoi = "Alignment ROI must be %s (%s) and it is %s (%s)"
288
+ self.assertEqual(goldRoi, roi,
289
+ msgRoi % (goldRoi, roi, type(goldRoi), type(roi)))
290
+
291
+ def test_qbeta(self):
292
+ movAliProt = self.newProtocol(XmippProtFlexAlign,
293
+ alignFrame0=2, alignFrameN=6,
294
+ doSaveAveMic=True)
295
+ movAliProt.inputMovies.set(self.protImport1.outputMovies)
296
+ self.launchProtocol(movAliProt)
297
+
298
+ self._checkAlignment(movAliProt.outputMovies[1],
299
+ (2, 6), [0, 0, 0, 0])
300
+
301
+ importPick = self.newProtocol(ProtImportCoordinates,
302
+ importFrom=ProtImportCoordinates.IMPORT_FROM_XMIPP,
303
+ filesPath=self.ds.getFile('qbeta/'),
304
+ filesPattern='*.pos', boxSize=320,
305
+ invertX=False,
306
+ invertY=False
307
+ )
308
+ importPick.inputMicrographs.set(movAliProt.outputMicrographs)
309
+ importPick.setObjLabel('import coords from xmipp ')
310
+ self.launchProtocol(importPick)
311
+
312
+ protExtract = self.newProtocol(XmippProtExtractMovieParticles,
313
+ boxSize=320, frame0=2, frameN=6,
314
+ applyAlignment=True, doInvert=True)
315
+ protExtract.inputMovies.set(movAliProt.outputMovies)
316
+ protExtract.inputCoordinates.set(importPick.outputCoordinates)
317
+ protExtract.setObjLabel('extract with alignment')
318
+ self.launchProtocol(protExtract)
319
+
320
+ self.assertIsNotNone(getattr(protExtract, 'outputParticles', None),
321
+ "Output SetOfMovieParticles were not created.")
322
+
323
+ size = protExtract.outputParticles.getSize()
324
+ self.assertEqual(size, 135, 'Number of particles must be 135 and its '
325
+ '%d' % size)
326
+
327
+ def test_cct(self):
328
+ movAliProt = self.newProtocol(XmippProtFlexAlign,
329
+ alignFrame0=2, alignFrameN=6,
330
+ doSaveAveMic=True)
331
+ movAliProt.inputMovies.set(self.protImport2.outputMovies)
332
+ self.launchProtocol(movAliProt)
333
+
334
+ self._checkAlignment(movAliProt.outputMovies[1],
335
+ (2, 6), [0, 0, 0, 0])
336
+
337
+ importPick = self.newProtocol(ProtImportCoordinates,
338
+ importFrom=ProtImportCoordinates.IMPORT_FROM_XMIPP,
339
+ filesPath=self.ds.getFile('cct/'),
340
+ filesPattern='*.pos', boxSize=320,
341
+ invertX=False,
342
+ invertY=False
343
+ )
344
+ importPick.inputMicrographs.set(movAliProt.outputMicrographs)
345
+ importPick.setObjLabel('import coords from xmipp ')
346
+ self.launchProtocol(importPick)
347
+
348
+ protExtract = self.newProtocol(XmippProtExtractMovieParticles,
349
+ boxSize=320, frame0=3, frameN=6,
350
+ applyAlignment=False, doInvert=True)
351
+ protExtract.inputMovies.set(movAliProt.outputMovies)
352
+ protExtract.inputCoordinates.set(importPick.outputCoordinates)
353
+ protExtract.setObjLabel('extract without alignment')
354
+ self.launchProtocol(protExtract)
355
+
356
+ self.assertIsNotNone(getattr(protExtract, 'outputParticles', None),
357
+ "Output SetOfMovieParticles were not created.")
358
+
359
+ size = protExtract.outputParticles.getSize()
360
+ self.assertEqual(size, 88, 'Number of particles must be 135 and its '
361
+ '%d' % size)
362
+
363
+
@@ -0,0 +1,53 @@
1
+ # **************************************************************************
2
+ # *
3
+ # * Authors: Alberto Garcia Mena (alberto.garcia@cnb.csic.es)
4
+ # *
5
+ # * Unidad de Bioinformatica of Centro Nacional de Biotecnologia , CSIC
6
+ # *
7
+ # * This program is free software; you can redistribute it and/or modify
8
+ # * it under the terms of the GNU General Public License as published by
9
+ # * the Free Software Foundation; either version 2 of the License, or
10
+ # * (at your option) any later version.
11
+ # *
12
+ # * This program is distributed in the hope that it will be useful,
13
+ # * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ # * GNU General Public License for more details.
16
+ # *
17
+ # * You should have received a copy of the GNU General Public License
18
+ # * along with this program; if not, write to the Free Software
19
+ # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
20
+ # * 02111-1307 USA
21
+ # *
22
+ # * All comments concerning this program package may be sent to the
23
+ # * e-mail address 'scipion@cnb.csic.es'
24
+ # *
25
+ # **************************************************************************
26
+
27
+ '''
28
+ Script to collect all failled attempts from aspecific release of Xmipp and return a json with just the logs reported
29
+ Requires a json generated on https://xmipp.i2pc.es/api/attempts/filters/?user__userId=&xmipp__branch=v3.25.06.0-Rhea&returnCode=&returnCode_not=0 (get-> json save)
30
+ After this scxript, ask any IA:
31
+ ChatGPT Question: This is a JSON file with the logs of the installation failures of Xmipp. Can you make a summary of the most common errors?
32
+ Ommit the Matlab errors and warnings, report the percent of each kind of error
33
+ '''
34
+
35
+ import json
36
+ import random
37
+
38
+ jsonpath = '/home/agarcia/Downloads/Rhea.json'
39
+ jsonGenerated = '/home/agarcia/Downloads/RheaJustLogs.json'
40
+ with open(jsonpath, "r") as f:
41
+ data = json.load(f)
42
+
43
+ # data is now a list of dicts
44
+ print(f"Number of entries: {len(data)}")
45
+
46
+ logs = [entry["logTail"] for entry in data if "logTail" in entry]
47
+
48
+ # pick a random subset of 100 entries
49
+ subset = random.sample(logs, min(400, len(logs)))
50
+
51
+ # write to new JSON file
52
+ with open(jsonGenerated, "w") as f:
53
+ json.dump(subset, f, indent=4, ensure_ascii=False)
@@ -52,13 +52,13 @@ from .protocol_create_gallery import XmippProtCreateGallery
52
52
  from .protocol_ctf_consensus import XmippProtCTFConsensus
53
53
  from .protocol_ctf_micrographs import XmippProtCTFMicrographs
54
54
  from .protocol_ctf_correct_wiener2d import XmippProtCTFCorrectWiener2D
55
+ from .protocol_ctf_correct_phase import XmippProtCTFCorrectPhase2D
55
56
  from .protocol_consensus_classes import XmippProtConsensusClasses
56
57
  from .protocol_denoise_particles import XmippProtDenoiseParticles
57
58
  from .protocol_deep_micrograph_screen import XmippProtDeepMicrographScreen
58
59
  from .protocol_eliminate_empty_images import (XmippProtEliminateEmptyParticles,
59
60
  XmippProtEliminateEmptyClasses)
60
61
  from .protocol_extract_particles import XmippProtExtractParticles
61
- from .protocol_extract_particles_movies import XmippProtExtractMovieParticles
62
62
  from .protocol_extract_particles_pairs import XmippProtExtractParticlesPairs
63
63
  from .protocol_extract_asymmetric_unit import XmippProtExtractUnit
64
64
  from .protocol_helical_parameters import XmippProtHelicalParameters
@@ -51,7 +51,7 @@ class XmippProtAlignVolume(ProtAlignVolume):
51
51
  """
52
52
  _label = 'align volume'
53
53
  nVols = 0
54
- _devStatus = UPDATED
54
+ _devStatus = PROD
55
55
  OUTPUT_NAME1 = "outputVolume"
56
56
  OUTPUT_NAME2 = "outputVolumes"
57
57
  _possibleOutputs = {OUTPUT_NAME1: Volume,
@@ -38,6 +38,7 @@ from pyworkflow.utils import weakImport
38
38
  from pyworkflow.utils.path import cleanPath
39
39
 
40
40
  from xmipp3.constants import SYM_URL
41
+ from pyworkflow import BETA, UPDATED, NEW, PROD
41
42
 
42
43
  ALIGN_MASK_CIRCULAR = 0
43
44
  ALIGN_MASK_BINARY_FILE = 1
@@ -63,13 +64,14 @@ class XmippProtAlignVolumeParticles(ProtAlignVolume):
63
64
  """
64
65
  _label = 'align volume and particles'
65
66
  _possibleOutputs = AlignVolPartOutputs
67
+ _devStatus = UPDATED
66
68
  nVols = 0
69
+
67
70
 
68
71
  def __init__(self, **args):
69
72
  ProtAlignVolume.__init__(self, **args)
70
73
 
71
74
  # These 2 must match the output enum above.
72
- self._alignmentMatrix = None
73
75
  self.Volume = None
74
76
  self.Particles = None
75
77
 
@@ -89,6 +91,8 @@ class XmippProtAlignVolumeParticles(ProtAlignVolume):
89
91
  'calculated with the reference and input volumes.')
90
92
  form.addParam('alignmentMode', params.EnumParam, default=ALIGN_GLOBAL, choices=["Global","Local"],
91
93
  label="Alignment mode")
94
+ form.addParam('considerMirrors', params.BooleanParam, default=False,
95
+ label='Consider mirrors')
92
96
  form.addParam('symmetryGroup', params.StringParam, default='c1',
93
97
  label="Symmetry group",
94
98
  help='See %s page for a description of the symmetries '
@@ -160,6 +164,8 @@ class XmippProtAlignVolumeParticles(ProtAlignVolume):
160
164
  args += " --frm"
161
165
  else:
162
166
  args += " --local"
167
+ if self.considerMirrors:
168
+ args += " --consider_mirror"
163
169
  args += " --copyGeo %s" % fhInputTranMat
164
170
  if not self.wrap:
165
171
  args += ' --dontWrap'
@@ -168,13 +174,16 @@ class XmippProtAlignVolumeParticles(ProtAlignVolume):
168
174
  cleanPath(self.fnInputVol)
169
175
 
170
176
  def getAlignmentMatrix(self):
171
-
172
- if self._alignmentMatrix is None:
177
+ if not (hasattr(self, '_lhsAlignmentMatrix') and hasattr(self, '_rhsAlignmentMatrix')):
173
178
  fhInputTranMat = self.getTransformationFile()
174
179
  transMatFromFile = np.loadtxt(fhInputTranMat)
175
- self._alignmentMatrix = np.reshape(transMatFromFile, (4, 4))
180
+ self._lhsAlignmentMatrix = np.reshape(transMatFromFile, (4, 4))
181
+ self._rhsAlignmentMatrix = np.eye(4)
182
+
183
+ if np.linalg.det(self._lhsAlignmentMatrix[:3,:3]) < 0:
184
+ self._rhsAlignmentMatrix[2,2] = -1
176
185
 
177
- return self._alignmentMatrix
186
+ return self._lhsAlignmentMatrix, self._rhsAlignmentMatrix
178
187
 
179
188
  def getTransformationFile(self):
180
189
  return self._getExtraPath('transformation-matrix.txt')
@@ -217,12 +226,11 @@ class XmippProtAlignVolumeParticles(ProtAlignVolume):
217
226
  self._defineSourceRelation(self.inputParticles, outputParticles)
218
227
 
219
228
  def _updateParticleTransform(self, particle, row):
229
+ lhs, rhs = self.getAlignmentMatrix()
230
+ alignment = np.array(particle.getTransform().getMatrix())
231
+ alignment2 = lhs @ alignment @ rhs
220
232
 
221
- aliMatrix = self.getAlignmentMatrix()
222
- partTransformMat = particle.getTransform().getMatrix()
223
- partTransformMatrix = np.matrix(partTransformMat)
224
- newTransformMatrix = np.matmul(aliMatrix, partTransformMatrix)
225
- particle.getTransform().setMatrix(newTransformMatrix)
233
+ particle.getTransform().setMatrix(alignment2)
226
234
 
227
235
  def getOutputAlignedVolumePath(self):
228
236
  outVolFn = self._getExtraPath("inputVolumeAligned.mrc")
@@ -40,7 +40,7 @@ class XmippProtAngBreakSymmetry(ProtProcessParticles):
40
40
  equivalent angular assignment for a given symmetry.
41
41
 
42
42
  Be aware that input symmetry values follows Xmipp conventions as described in:
43
- http://xmipp.cnb.csic.es/twiki/bin/view/Xmipp/Symmetry
43
+ https://i2pc.github.io/docs/Utils/Conventions/index.html#symmetry
44
44
  """
45
45
  _label = 'break symmetry'
46
46
 
@@ -49,7 +49,7 @@ class XmippProtAngBreakSymmetry(ProtProcessParticles):
49
49
 
50
50
  form.addParam('symmetryGroup', StringParam, default="c1",
51
51
  label='Symmetry group',
52
- help="See http://xmipp.cnb.csic.es/twiki/bin/view/Xmipp/Symmetry"
52
+ help="See https://i2pc.github.io/docs/Utils/Conventions/index.html#symmetry"
53
53
  " for a description of the symmetry groups format in Xmipp.\n"
54
54
  "If no symmetry is present, use _c1_.")
55
55
 
@@ -63,9 +63,9 @@ class XmippProtAngBreakSymmetry(ProtProcessParticles):
63
63
  # Create a metadata with the geometrical information
64
64
  # as expected by Xmipp
65
65
  imgsFn = self._getPath('input_particles.xmd')
66
- self._insertFunctionStep('convertInputStep', imgsFn)
67
- self._insertFunctionStep('breakSymmetryStep', imgsFn)
68
- self._insertFunctionStep('createOutputStep')
66
+ self._insertFunctionStep(self.convertInputStep, imgsFn)
67
+ self._insertFunctionStep(self.breakSymmetryStep, imgsFn)
68
+ self._insertFunctionStep(self.createOutputStep)
69
69
 
70
70
  #--------------------------- STEPS functions --------------------------------------------
71
71
 
@@ -84,23 +84,14 @@ ALIGNMENT_DICT = {"shiftX": XMIPPCOLUMNS.shiftX.value,
84
84
  "angleTilt": XMIPPCOLUMNS.angleTilt.value
85
85
  }
86
86
 
87
-
88
-
89
- def updateEnviron(gpuNum):
90
- """ Create the needed environment for pytorch programs. """
91
- print("updating environ to select gpu %s" % (gpuNum))
92
- if gpuNum == '':
93
- os.environ['CUDA_VISIBLE_DEVICES'] = '0'
94
- else:
95
- os.environ['CUDA_VISIBLE_DEVICES'] = str(gpuNum)
96
-
97
87
  CONTRAST_AVERAGES_FILE = 'classes_contrast_classes.star'
98
88
  AVERAGES_IMAGES_FILE = 'classes_images.star'
99
89
 
100
90
  class XmippProtClassifyPca(ProtClassify2D, XmippProtocol):
101
- """ Classifies a set of images. """
91
+ """ Classifies a set of images using Principal Component Analysis (PCA). This 2D classification groups (the number of groups can be set) are based on their similarities, assisting in the identification of different conformational states or particle populations. """
102
92
 
103
- _label = 'Classifies a set of images using Principal Component Analysis (PCA). This 2D classification groups (the number of groups can be set) are based on their similarities, assisting in the identification of different conformational states or particle populations.'
93
+ _label= '2D classification pca'
94
+
104
95
  _lastUpdateVersion = VERSION_3_0
105
96
  _conda_env = 'xmipp_pyTorch'
106
97
  _devStatus = BETA
@@ -171,7 +162,6 @@ class XmippProtClassifyPca(ProtClassify2D, XmippProtocol):
171
162
  def _insertAllSteps(self):
172
163
 
173
164
  """ Mainly prepare the command line for call classification program"""
174
- self.setGPU()
175
165
  self.imgsOrigXmd = self._getExtraPath('images_original.xmd')
176
166
  self.imgsXmd = self._getTmpPath('images.xmd')
177
167
  self.imgsFn = self._getTmpPath('images.mrc')
@@ -198,13 +188,21 @@ class XmippProtClassifyPca(ProtClassify2D, XmippProtocol):
198
188
 
199
189
  self._insertFunctionStep('createOutputStep')
200
190
 
201
- def setGPU(self):
202
- if self.useQueueForSteps() or self.useQueue():
203
- myStr = os.environ["CUDA_VISIBLE_DEVICES"]
191
+
192
+ def getGpusList(self, separator):
193
+ strGpus = ""
194
+ for elem in self._stepsExecutor.getGpuList():
195
+ strGpus = strGpus + str(elem) + separator
196
+ return strGpus[:-1]
197
+
198
+ def setGPU(self, oneGPU=False):
199
+ if oneGPU:
200
+ gpus = self.getGpusList(",")[0]
204
201
  else:
205
- myStr = self.gpuList.get()
206
- os.environ["CUDA_VISIBLE_DEVICES"] = self.gpuList.get()
207
- self.numGPU = myStr.split(',')[0]
202
+ gpus = self.getGpusList(",")
203
+ os.environ["CUDA_VISIBLE_DEVICES"] = gpus
204
+ self.info(f'Visible GPUS: {gpus}')
205
+ return gpus
208
206
 
209
207
 
210
208
  #--------------------------- STEPS functions -------------------------------
@@ -234,8 +232,9 @@ class XmippProtClassifyPca(ProtClassify2D, XmippProtocol):
234
232
 
235
233
 
236
234
  def pcaTraining(self, inputIm, resolutionTrain, numTrain):
235
+ gpuId = self.setGPU(oneGPU=True)
237
236
  args = ' -i %s -s %s -hr %s -lr 530 -p %s -t %s -o %s/train_pca --batchPCA -g %s'% \
238
- (inputIm, self.sampling, resolutionTrain, self.coef.get(), numTrain, self._getExtraPath(), self.numGPU)
237
+ (inputIm, self.sampling, resolutionTrain, self.coef.get(), numTrain, self._getExtraPath(), gpuId)
239
238
 
240
239
  env = self.getCondaEnv()
241
240
  env['LD_LIBRARY_PATH'] = ''
@@ -243,9 +242,10 @@ class XmippProtClassifyPca(ProtClassify2D, XmippProtocol):
243
242
 
244
243
 
245
244
  def classification(self, inputIm, numClass, stfile, mask, sigma):
245
+ gpuId = self.setGPU(oneGPU=True)
246
246
  args = ' -i %s -c %s -b %s/train_pca_bands.pt -v %s/train_pca_vecs.pt -o %s/classes -stExp %s -g %s' % \
247
247
  (inputIm, numClass, self._getExtraPath(), self._getExtraPath(), self._getExtraPath(),
248
- stfile, self.numGPU)
248
+ stfile, gpuId)
249
249
  if mask:
250
250
  args += ' --mask --sigma %s '%(sigma)
251
251