scipion-em-xmipp 26.0.1__tar.gz → 26.1.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-26.0.1 → scipion_em_xmipp-26.1.0}/CHANGELOG.md +12 -0
  2. {scipion_em_xmipp-26.0.1/scipion_em_xmipp.egg-info → scipion_em_xmipp-26.1.0}/PKG-INFO +1 -5
  3. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/requirements.txt +1 -4
  4. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0/scipion_em_xmipp.egg-info}/PKG-INFO +1 -5
  5. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/scipion_em_xmipp.egg-info/requires.txt +0 -4
  6. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/__init__.py +11 -9
  7. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/constants.py +1 -0
  8. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_extract_particles_movies.py +1 -1
  9. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_compute_likelihood.py +2 -2
  10. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_deep_micrograph_screen.py +149 -1
  11. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_extract_particles.py +2 -2
  12. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_extract_particles_pairs.py +1 -1
  13. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_preprocess/protocol_preprocess.py +6 -6
  14. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/version.py +1 -1
  15. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_deep_micrograph_cleaner.py +78 -5
  16. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/LICENSE +0 -0
  17. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/MANIFEST.in +0 -0
  18. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/README.md +0 -0
  19. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/pyproject.toml +0 -0
  20. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/scipion_em_xmipp.egg-info/SOURCES.txt +0 -0
  21. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/scipion_em_xmipp.egg-info/dependency_links.txt +0 -0
  22. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/scipion_em_xmipp.egg-info/entry_points.txt +0 -0
  23. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/scipion_em_xmipp.egg-info/top_level.txt +0 -0
  24. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/setup.cfg +0 -0
  25. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/base.py +0 -0
  26. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/bibtex.py +0 -0
  27. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/checkProtocolsConf.py +0 -0
  28. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/convert/__init__.py +0 -0
  29. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/convert/convert.py +0 -0
  30. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/convert/dataimport.py +0 -0
  31. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/convert/io_coordinates.py +0 -0
  32. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/__init__.py +0 -0
  33. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/__init__.py +0 -0
  34. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_angular_resolution_alignment.py +0 -0
  35. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_apply_deformation_zernike3d.py +0 -0
  36. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_classification_gpuCorr.py +0 -0
  37. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_classification_gpuCorr_full.py +0 -0
  38. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_classification_gpuCorr_semi.py +0 -0
  39. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_classify_kmeans2d.py +0 -0
  40. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_deep_align.py +0 -0
  41. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_deep_denoising.py +0 -0
  42. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_enrich.py +0 -0
  43. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_kmeans_clustering.py +0 -0
  44. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_metaprotocol_create_output.py +0 -0
  45. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_metaprotocol_create_subset.py +0 -0
  46. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_metaprotocol_discrete_heterogeneity_scheduler.py +0 -0
  47. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_metaprotocol_golden_highres.py +0 -0
  48. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_mltomo.py +0 -0
  49. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_movie_average.py +0 -0
  50. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_movie_opticalflow.py +0 -0
  51. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_particle_boxsize.py +0 -0
  52. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_reconstruct_heterogeneous.py +0 -0
  53. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_rotational_spectra.py +0 -0
  54. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_screen_deeplearning.py +0 -0
  55. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_solid_angles.py +0 -0
  56. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_split_volume.py +0 -0
  57. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_split_volume_hierarchical_cluster.py +0 -0
  58. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/protocols/protocol_subtract_projection.py +0 -0
  59. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/tests/test_protocol_deep_denoising.py +0 -0
  60. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/tests/test_protocols_angular_resolution_alignment.py +0 -0
  61. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/tests/test_protocols_gpuCorr_classifier.py +0 -0
  62. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/tests/test_protocols_gpuCorr_fullStreaming.py +0 -0
  63. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/tests/test_protocols_gpuCorr_semiStreaming.py +0 -0
  64. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/tests/test_protocols_metaprotocol_golden_highres.py +0 -0
  65. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/tests/test_protocols_metaprotocol_heterogeneity.py +0 -0
  66. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/tests/test_protocols_mixed_movies.py +0 -0
  67. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/tests/test_protocols_solid_angles.py +0 -0
  68. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/tests/test_protocols_subtract_projection.py +0 -0
  69. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/tests/test_protocols_xmipp_movies.py +0 -0
  70. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/viewers/viewer_angular_resolution_alignment.py +0 -0
  71. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/viewers/viewer_deep_align.py +0 -0
  72. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/viewers/viewer_metaprotocol_golden_highres.py +0 -0
  73. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/viewers/viewer_mltomo.py +0 -0
  74. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/viewers/viewer_solid_angles.py +0 -0
  75. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/legacy/viewers/viewer_split_volume.py +0 -0
  76. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/logParser.py +0 -0
  77. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/programs.py +0 -0
  78. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/__init__.py +0 -0
  79. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_align_volume.py +0 -0
  80. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_align_volume_and_particles.py +0 -0
  81. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_analyze_local_ctf.py +0 -0
  82. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_angular_graph_consistency.py +0 -0
  83. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_apply_alignment.py +0 -0
  84. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_apply_tilt_to_ctf.py +0 -0
  85. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_apply_transformation_matrix.py +0 -0
  86. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_apply_zernike3d.py +0 -0
  87. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_assignment_tilt_pair.py +0 -0
  88. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_break_symmetry.py +0 -0
  89. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_center_particles.py +0 -0
  90. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_cl2d.py +0 -0
  91. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_cl2d_align.py +0 -0
  92. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_cl2d_clustering.py +0 -0
  93. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_classes_2d_mapping.py +0 -0
  94. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_classify_pca.py +0 -0
  95. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_classify_pca_streaming.py +0 -0
  96. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_compare_angles.py +0 -0
  97. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_compare_reprojections.py +0 -0
  98. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_consensus_classes.py +0 -0
  99. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_consensus_local_ctf.py +0 -0
  100. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_convert_pdb.py +0 -0
  101. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_core_analysis.py +0 -0
  102. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_create_gallery.py +0 -0
  103. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_ctf_consensus.py +0 -0
  104. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_ctf_correct_phase.py +0 -0
  105. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_ctf_correct_wiener2d.py +0 -0
  106. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_ctf_defocus_group.py +0 -0
  107. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_ctf_micrographs.py +0 -0
  108. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_deep_center.py +0 -0
  109. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_deep_center_predict.py +0 -0
  110. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_deep_hand.py +0 -0
  111. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_denoise_particles.py +0 -0
  112. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_eliminate_empty_images.py +0 -0
  113. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_extract_asymmetric_unit.py +0 -0
  114. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_flexalign.py +0 -0
  115. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_generate_reprojections.py +0 -0
  116. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_helical_parameters.py +0 -0
  117. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_kerdensom.py +0 -0
  118. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_local_ctf.py +0 -0
  119. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_mics_defocus_balancer.py +0 -0
  120. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_ml2d.py +0 -0
  121. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_movie_alignment_consensus.py +0 -0
  122. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_movie_dose_analysis.py +0 -0
  123. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_movie_gain.py +0 -0
  124. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_movie_max_shift.py +0 -0
  125. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_movie_split_frames.py +0 -0
  126. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_multiple_fscs.py +0 -0
  127. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_multireference_alignability.py +0 -0
  128. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_normalize_strain.py +0 -0
  129. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_particle_pick.py +0 -0
  130. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_particle_pick_automatic.py +0 -0
  131. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_particle_pick_consensus.py +0 -0
  132. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_particle_pick_pairs.py +0 -0
  133. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_particle_pick_remove_duplicates.py +0 -0
  134. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_phantom_create.py +0 -0
  135. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_pick_noise.py +0 -0
  136. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_postProcessing_deepPostProcessing.py +0 -0
  137. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_preprocess/__init__.py +0 -0
  138. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_preprocess/geometrical_mask.py +0 -0
  139. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_preprocess/protocol_add_noise.py +0 -0
  140. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_preprocess/protocol_create_mask2d.py +0 -0
  141. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_preprocess/protocol_create_mask3d.py +0 -0
  142. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_preprocess/protocol_crop_resize.py +0 -0
  143. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_preprocess/protocol_filter.py +0 -0
  144. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_preprocess/protocol_image_operate.py +0 -0
  145. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_preprocess/protocol_mask.py +0 -0
  146. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_preprocess/protocol_movie_resize.py +0 -0
  147. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_preprocess/protocol_process.py +0 -0
  148. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_preprocess_micrographs.py +0 -0
  149. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_projmatch/__init__.py +0 -0
  150. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_projmatch/projmatch_form.py +0 -0
  151. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_projmatch/projmatch_initialize.py +0 -0
  152. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_projmatch/projmatch_steps.py +0 -0
  153. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_projmatch/protocol_projmatch.py +0 -0
  154. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_random_conical_tilt.py +0 -0
  155. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_ransac.py +0 -0
  156. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_reconstruct_fourier.py +0 -0
  157. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_reconstruct_highres.py +0 -0
  158. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_reconstruct_significant.py +0 -0
  159. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_reconstruct_swarm.py +0 -0
  160. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_resolution3d.py +0 -0
  161. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_resolution_bfactor.py +0 -0
  162. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_resolution_deepres.py +0 -0
  163. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_resolution_directional.py +0 -0
  164. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_resolution_fso.py +0 -0
  165. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_resolution_monogenic_signal.py +0 -0
  166. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_rotate_volume.py +0 -0
  167. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_rotational_symmetry.py +0 -0
  168. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_screen_deepConsensus.py +0 -0
  169. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_screen_particles.py +0 -0
  170. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_shift_particles.py +0 -0
  171. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_shift_volume.py +0 -0
  172. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_simulate_ctf.py +0 -0
  173. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_structure_map.py +0 -0
  174. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_structure_map_zernike3d.py +0 -0
  175. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_subtract_projection.py +0 -0
  176. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_tilt_analysis.py +0 -0
  177. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_trigger_data.py +0 -0
  178. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_validate_fscq.py +0 -0
  179. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_validate_nontilt.py +0 -0
  180. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_validate_overfitting.py +0 -0
  181. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_volume_adjust_sub.py +0 -0
  182. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_volume_consensus.py +0 -0
  183. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_volume_deform_zernike3d.py +0 -0
  184. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_volume_local_adjust.py +0 -0
  185. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_volume_local_sharpening.py +0 -0
  186. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_volume_strain.py +0 -0
  187. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_write_testC.py +0 -0
  188. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols/protocol_write_testP.py +0 -0
  189. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocols.conf +0 -0
  190. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/protocolsCollectInfo.py +0 -0
  191. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/__init__.py +0 -0
  192. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_convert_xmipp.py +0 -0
  193. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocol_angular_graph_consistency.py +0 -0
  194. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocol_apply_transformation_matrix.py +0 -0
  195. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocol_compare_angles.py +0 -0
  196. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocol_consensus_classes3D.py +0 -0
  197. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocol_ctf_consensus.py +0 -0
  198. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocol_extract_asymmetric_unit.py +0 -0
  199. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocol_likelihood.py +0 -0
  200. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocol_monodir.py +0 -0
  201. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocol_multiple_fsc.py +0 -0
  202. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocol_multireference_alignability.py +0 -0
  203. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocol_reconstruct_fourier.py +0 -0
  204. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocol_screen_deepConsensus.py +0 -0
  205. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocol_simulate_ctf.py +0 -0
  206. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocol_split_frames.py +0 -0
  207. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocol_validate_fscq.py +0 -0
  208. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocol_validate_overfitting.py +0 -0
  209. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocols_add_noise.py +0 -0
  210. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocols_continuousflex.py +0 -0
  211. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocols_deepVolPostprocessing.py +0 -0
  212. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocols_deepcenter_predict.py +0 -0
  213. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocols_deepres.py +0 -0
  214. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocols_fso.py +0 -0
  215. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocols_highres.py +0 -0
  216. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocols_local_defocus.py +0 -0
  217. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocols_localdeblur.py +0 -0
  218. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocols_monores.py +0 -0
  219. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocols_realignment_classes.py +0 -0
  220. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocols_xmipp_2d.py +0 -0
  221. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocols_xmipp_3d.py +0 -0
  222. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocols_xmipp_mics.py +0 -0
  223. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocols_xmipp_movie_resize.py +0 -0
  224. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocols_xmipp_movies.py +0 -0
  225. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/tests/test_protocols_zernike3d.py +0 -0
  226. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/utils.py +0 -0
  227. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/__init__.py +0 -0
  228. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/plotter.py +0 -0
  229. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer.py +0 -0
  230. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_LL_matrix.py +0 -0
  231. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_analyze_local_ctf.py +0 -0
  232. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_apply_tilt_to_ctf.py +0 -0
  233. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_cl2d.py +0 -0
  234. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_cl2d_clustering.py +0 -0
  235. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_consensus_classes.py +0 -0
  236. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_ctf_consensus.py +0 -0
  237. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_deepEMHancer.py +0 -0
  238. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_deep_consensus.py +0 -0
  239. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_dose_analysis.py +0 -0
  240. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_eliminate_empty_images.py +0 -0
  241. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_extract_asymmetric_unit.py +0 -0
  242. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_local_sharpening.py +0 -0
  243. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_ml2d.py +0 -0
  244. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_movie_alignment.py +0 -0
  245. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_normalize_strain.py +0 -0
  246. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_pdb_deform_zernike3d.py +0 -0
  247. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_projmatch.py +0 -0
  248. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_ransac.py +0 -0
  249. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_reconstruct_highres.py +0 -0
  250. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_resolution3d.py +0 -0
  251. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_resolution_bfactor.py +0 -0
  252. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_resolution_deepres.py +0 -0
  253. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_resolution_directional.py +0 -0
  254. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_resolution_fso.py +0 -0
  255. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_resolution_monogenic_signal.py +0 -0
  256. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_structure_map.py +0 -0
  257. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_subtract_projection.py +0 -0
  258. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_swarm.py +0 -0
  259. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_validate_fscq.py +0 -0
  260. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_validate_nontilt.py +0 -0
  261. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_validate_overfitting.py +0 -0
  262. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_volume_consensus.py +0 -0
  263. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_volume_deform_zernike3d.py +0 -0
  264. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_volume_strain.py +0 -0
  265. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/viewers/viewer_volume_subtraction.py +0 -0
  266. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/wizards.py +0 -0
  267. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/xmipp_logo.png +0 -0
  268. {scipion_em_xmipp-26.0.1 → scipion_em_xmipp-26.1.0}/xmipp3/xmipp_logo_devel.png +0 -0
@@ -1,3 +1,15 @@
1
+ ## Release 26.1.0
2
+ - Protocols updated
3
+ - deep_micrograph_cleaner: Showing thumbnails of micrographs with the mask and the coordinates stamps
4
+ - protocol_extract_particles, protocol_preprocess, protocol_compute_likelihood, protocol_extract_particles_pairs: fix typo
5
+
6
+ - More scipion-em-xmipp
7
+ - xmipp3-installer package installed from github release and not from pypi
8
+
9
+ ## Release 26.0.2
10
+ - More scipion-em-xmipp
11
+ - Remove scipion dependencies from requirements
12
+
1
13
  ## Release 26.0.1
2
14
  - More scipion-em-xmipp
3
15
  - Fix on xmipp installation flag
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scipion-em-xmipp
3
- Version: 26.0.1
3
+ Version: 26.1.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)
@@ -10,17 +10,13 @@ Keywords: scipion electron-microscopy cryo-em structural-biology image-processin
10
10
  Requires-Python: >=3.8
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
13
- Requires-Dist: scipion-pyworkflow>=3.0.31
14
13
  Requires-Dist: scikit-learn>=1.2
15
14
  Requires-Dist: scikit-image
16
- Requires-Dist: scipion-em
17
- Requires-Dist: scipion-app
18
15
  Requires-Dist: scipy<=1.10.0
19
16
  Requires-Dist: joblib
20
17
  Requires-Dist: peppercorn
21
18
  Requires-Dist: plotter
22
19
  Requires-Dist: PyWavelets
23
- Requires-Dist: xmipp3-installer==2.*
24
20
  Requires-Dist: numpy==1.*
25
21
  Dynamic: license-file
26
22
 
@@ -1,12 +1,9 @@
1
- scipion-pyworkflow>=3.0.31
2
1
  scikit-learn>=1.2
3
2
  scikit-image
4
- scipion-em
5
- scipion-app
6
3
  scipy<=1.10.0
7
4
  joblib
8
5
  peppercorn
9
6
  plotter
10
7
  PyWavelets
11
- xmipp3-installer==2.*
8
+ #xmipp3-installer>=2.0.4,<3.0.0
12
9
  numpy==1.*
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: scipion-em-xmipp
3
- Version: 26.0.1
3
+ Version: 26.1.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)
@@ -10,17 +10,13 @@ Keywords: scipion electron-microscopy cryo-em structural-biology image-processin
10
10
  Requires-Python: >=3.8
11
11
  Description-Content-Type: text/markdown
12
12
  License-File: LICENSE
13
- Requires-Dist: scipion-pyworkflow>=3.0.31
14
13
  Requires-Dist: scikit-learn>=1.2
15
14
  Requires-Dist: scikit-image
16
- Requires-Dist: scipion-em
17
- Requires-Dist: scipion-app
18
15
  Requires-Dist: scipy<=1.10.0
19
16
  Requires-Dist: joblib
20
17
  Requires-Dist: peppercorn
21
18
  Requires-Dist: plotter
22
19
  Requires-Dist: PyWavelets
23
- Requires-Dist: xmipp3-installer==2.*
24
20
  Requires-Dist: numpy==1.*
25
21
  Dynamic: license-file
26
22
 
@@ -1,12 +1,8 @@
1
- scipion-pyworkflow>=3.0.31
2
1
  scikit-learn>=1.2
3
2
  scikit-image
4
- scipion-em
5
- scipion-app
6
3
  scipy<=1.10.0
7
4
  joblib
8
5
  peppercorn
9
6
  plotter
10
7
  PyWavelets
11
- xmipp3-installer==2.*
12
8
  numpy==1.*
@@ -35,7 +35,7 @@ import pyworkflow.utils as pwutils
35
35
  from scipion.install.funcs import CondaCommandDef
36
36
  from .base import *
37
37
  from .version import *
38
- from .constants import XMIPP_HOME, XMIPP_URL, XMIPP_DLTK_NAME, XMIPP_CUDA_BIN, XMIPP_CUDA_LIB, XMIPP_GIT_URL
38
+ from .constants import XMIPP_HOME, XMIPP_URL, XMIPP_DLTK_NAME, XMIPP_CUDA_BIN, XMIPP_CUDA_LIB, XMIPP_GIT_URL, XMIPP3_INSTALLER_URL
39
39
 
40
40
 
41
41
  _references = ['delaRosaTrevin2013', 'Sorzano2013', 'Strelak2021']
@@ -47,6 +47,7 @@ type_of_version = version.type_of_version
47
47
  _logo = version._logo
48
48
  _currentDepVersion = version._currentDepVersion
49
49
  __version__ = version.__version__
50
+ _xmipp3_installerV = "v2.0.4"
50
51
 
51
52
 
52
53
  class Plugin(pwem.Plugin):
@@ -126,7 +127,6 @@ class Plugin(pwem.Plugin):
126
127
  env.set('MATLABPATH', os.path.join(os.environ[XMIPP_HOME],
127
128
  'libraries', 'bindings', 'matlab'),
128
129
  pwutils.Environ.BEGIN)
129
-
130
130
  return env
131
131
 
132
132
  @classmethod
@@ -147,7 +147,7 @@ class Plugin(pwem.Plugin):
147
147
  'dist/xmipp.bashrc'
148
148
  ]
149
149
 
150
- # When changing dependencies, increment _currentDepVersion
150
+ # When changing dependencies, increment
151
151
  CONDA_DEPENDENCIES = [
152
152
  "'cmake>=3.18,<4'", #cmake-4 is not compatible with Relion compilation
153
153
  "hdf5>=1.18",
@@ -177,11 +177,12 @@ class Plugin(pwem.Plugin):
177
177
  neededProgs=['conda'],
178
178
  default=True
179
179
  )
180
-
180
+ xmipp3_installer_cmd = f'pip install "xmipp3-installer @ git+{XMIPP3_INSTALLER_URL}@{_xmipp3_installerV}" '
181
181
  if develMode:
182
182
  xmippSrc = 'xmippDev'
183
183
  installCommands = [
184
- (f'cd {pwem.Config.EM_ROOT} && rm -rf {xmippSrc} && '
184
+ (f'{xmipp3_installer_cmd } && '
185
+ f'cd {pwem.Config.EM_ROOT} && rm -rf {xmippSrc} && '
185
186
  f'git clone {XMIPP_GIT_URL} {xmippSrc} && '
186
187
  f'cd {xmippSrc} && '
187
188
  #f'git checkout {branchTest} && '
@@ -199,10 +200,11 @@ class Plugin(pwem.Plugin):
199
200
  else:
200
201
  xmippSrc = f'xmipp3-{version._binVersion}'
201
202
  installCommands = [
202
- (f'cd .. && rm -rf {xmippSrc} && '
203
- f'git clone {XMIPP_GIT_URL} -b {version._binVersion} {xmippSrc} && '
204
- f'cd {xmippSrc} && '
205
- f'./xmipp', COMPILE_TARGETS)
203
+ (f'{xmipp3_installer_cmd } && '
204
+ f'cd .. && rm -rf {xmippSrc} && '
205
+ f'git clone {XMIPP_GIT_URL} -b {version._binVersion} {xmippSrc} && '
206
+ f'cd {xmippSrc} && '
207
+ f'./xmipp', COMPILE_TARGETS)
206
208
  ]
207
209
  env.addPackage(
208
210
  'xmipp3', version=version._binVersion,
@@ -31,6 +31,7 @@ This modules contains constants related to Xmipp3 protocols
31
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
+ XMIPP3_INSTALLER_URL = 'https://github.com/I2PC/xmipp3-installer.git'
34
35
  NMA_HOME = 'NMA_HOME'
35
36
  XMIPP_DLTK_NAME = 'deepLearningToolkit' # consider to change it to xmipp_DLTK to make short it
36
37
  XMIPP_CUDA_BIN = 'XMIPP_CUDA_BIN'
@@ -152,7 +152,7 @@ class XmippProtExtractMovieParticles(ProtExtractMovieParticles):
152
152
  help='Pixels outside this circle are assumed to be '
153
153
  'noise and their stddev is set to 1. Radius for '
154
154
  'background circle definition (in pix.). If this '
155
- 'value is 0, then half the box size is used.',
155
+ 'value is less than or equal to 0, then half the box size is used.',
156
156
  expertLevel=LEVEL_ADVANCED)
157
157
 
158
158
  form.addParallelSection(threads=3, mpi=1)
@@ -105,8 +105,8 @@ class XmippProtComputeLikelihood(ProtAnalysis3D):
105
105
 
106
106
  form.addParam('doNorm', BooleanParam, default=False,
107
107
  label='Normalize', expertLevel=LEVEL_ADVANCED,
108
- help='Whether to subtract background gray values and normalize'
109
- 'so that in the background there is 0 mean and'
108
+ help='Whether to subtract background gray values and normalize '
109
+ 'so that in the background there is 0 mean and '
110
110
  'standard deviation 1. This is applied to particles and volumes')
111
111
  form.addParam('normType', EnumParam, condition='doNorm',
112
112
  label='Particle normalization type', expertLevel=LEVEL_ADVANCED,
@@ -33,12 +33,26 @@ import pyworkflow.protocol.params as params
33
33
  from pwem.protocols import ProtExtractParticles
34
34
  from pyworkflow.object import Set, Pointer
35
35
 
36
+ import mrcfile
37
+ from scipy.ndimage import zoom
38
+ import matplotlib
39
+ from matplotlib.lines import Line2D
40
+ from matplotlib.patches import Patch
41
+ matplotlib.use('Agg')
42
+ from matplotlib.patches import Circle
43
+ from matplotlib.collections import PatchCollection
44
+
36
45
  from xmipp3.base import XmippProtocol
37
46
  from xmipp_base import createMetaDataFromPattern
38
47
  from xmipp3.convert import (writeMicCoordinates, readSetOfCoordinates)
39
48
  from xmipp3.constants import SAME_AS_PICKING, OTHER
40
49
  from pyworkflow import BETA, UPDATED, NEW, PROD
50
+ import numpy as np
51
+ import mrcfile
52
+ import matplotlib.pyplot as plt
41
53
 
54
+ MAX_SIZE_THUMB=512
55
+ NUM_THUMBNAILS=45
42
56
 
43
57
  class XmippProtDeepMicrographScreen(ProtExtractParticles, XmippProtocol):
44
58
  """Removes coordinates located in carbon regions or large impurities in micrographs using a pre-trained deep learning model. This screening improves particle picking accuracy by filtering out false positives from contaminated areas."""
@@ -113,6 +127,12 @@ class XmippProtDeepMicrographScreen(ProtExtractParticles, XmippProtocol):
113
127
  form.addParam("saveMasks", params.BooleanParam, default=False,expertLevel=params.LEVEL_ADVANCED,
114
128
  label="saveMasks", help="Save predicted masks?")
115
129
 
130
+ form.addParam("saveMicThumbnailWithMask", params.BooleanParam, default=True, expertLevel=params.LEVEL_ADVANCED,
131
+ condition='saveMasks == True',
132
+ label="Save thumbnails (mics and mask)",
133
+ help="Save a set of 50 micrographs with the predicted masks stamp and coords stamp")
134
+
135
+
116
136
  form.addHidden(params.USE_GPU, params.BooleanParam, default=True,
117
137
  label="Use GPU for execution",
118
138
  help="This protocol has both CPU and GPU implementation. "
@@ -148,6 +168,7 @@ class XmippProtDeepMicrographScreen(ProtExtractParticles, XmippProtocol):
148
168
  # before the actual processing
149
169
  pwutils.makePath(self._getExtraPath('inputCoords'))
150
170
  pwutils.makePath(self._getExtraPath('outputCoords'))
171
+ pwutils.makePath(self._getExtraPath('thumbnails'))
151
172
  if self.saveMasks.get():
152
173
  pwutils.makePath(self._getExtraPath("predictedMasks"))
153
174
  self._setupBasicProperties()
@@ -179,7 +200,6 @@ class XmippProtDeepMicrographScreen(ProtExtractParticles, XmippProtocol):
179
200
 
180
201
  def extractMicrographListStepOwn(self, micKeyList, *args):
181
202
  micList = []
182
-
183
203
  for micName in micKeyList:
184
204
  mic = self.micDict[micName]
185
205
  micDoneFn = self._getMicDone(mic)
@@ -197,7 +217,12 @@ class XmippProtDeepMicrographScreen(ProtExtractParticles, XmippProtocol):
197
217
 
198
218
  self._computeMaskForMicrographList(micList, *args)
199
219
 
220
+ thumbnailCounter = 0
200
221
  for mic in micList:
222
+ if self.saveMicThumbnailWithMask.get():
223
+ if thumbnailCounter <= NUM_THUMBNAILS:
224
+ self._generateThumbnail(mic)
225
+ thumbnailCounter += 1
201
226
  # Mark this mic as finished
202
227
  open(self._getMicDone(mic), 'w').close()
203
228
 
@@ -524,3 +549,126 @@ class XmippProtDeepMicrographScreen(ProtExtractParticles, XmippProtocol):
524
549
  self._defineSourceRelation(inputset,
525
550
  Pointer(value=self, extended=outputName))
526
551
  self._store()
552
+
553
+ def _generateThumbnail(self, mic):
554
+ """
555
+ Generate a thumbnail PNG for a given micrograph.
556
+
557
+ Steps performed:
558
+ 1. Load the micrograph from MRC file and normalize pixel values to 0-255.
559
+ 2. Optionally read particle coordinates from a .pos file.
560
+ 3. Optionally read a predicted mask from a .mrc file.
561
+ 4. Resize the image, mask, and scale coordinates if larger than maxSize.
562
+ 5. Overlay the mask in blue and draw particles as red circles.
563
+ 6. Save the final thumbnail as a PNG with minimal padding and compression.
564
+
565
+ Parameters
566
+ ----------
567
+ mic : Micrograph object
568
+ The micrograph to generate the thumbnail for.
569
+ maxSize : int, optional
570
+ Maximum size (in pixels) for the thumbnail (default is 512).
571
+
572
+ Returns
573
+ -------
574
+ None
575
+ The thumbnail is saved directly to the 'thumbnails' directory.
576
+ """
577
+ micFn = mic.getFileName()
578
+ micBase = pwutils.removeBaseExt(os.path.basename(micFn))
579
+
580
+ posFn = self._getExtraPath('outputCoords', micBase + '.pos')
581
+ maskFn = self._getExtraPath('predictedMasks', micBase + '.mrc')
582
+ thumbFn = self._getExtraPath('thumbnails', micBase + '.png')
583
+ if os.path.exists(thumbFn):
584
+ return
585
+
586
+ # --- Read micrograph ---
587
+ with mrcfile.open(micFn, permissive=True) as mrc:
588
+ img = mrc.data.astype(np.float32)
589
+
590
+ # --- Normalize and convert to uint8 ---
591
+ p1, p99 = np.percentile(img, (1, 99))
592
+ img = np.clip((img - p1) / (p99 - p1), 0, 1)
593
+ img = (img * 255).astype(np.uint8)
594
+
595
+ # --- Read coordinates ---
596
+ if os.path.exists(posFn):
597
+ coords = self.read_star_coordinates(posFn)
598
+
599
+ # --- Read mask ---
600
+ mask = None
601
+ if os.path.exists(maskFn):
602
+ with mrcfile.open(maskFn, permissive=True) as mrc:
603
+ mask = mrc.data.astype(np.float32)
604
+ mask = np.clip(mask, 0.0, 1)
605
+
606
+ # --- Resize image, mask, and scale coordinates/radius ---
607
+ h, w = img.shape
608
+ scale = max(MAX_SIZE_THUMB / h, MAX_SIZE_THUMB / w)
609
+
610
+ if scale < 1.0:
611
+ # Bilinear resize for image
612
+ img = zoom(img, (scale, scale), order=1, prefilter=False).astype(np.uint8)
613
+ # Nearest neighbor resize for mask
614
+ if mask is not None:
615
+ mask = zoom(mask, (scale, scale), order=0)
616
+ # Scale coordinates
617
+ if coords:
618
+ coords = [(x * scale, y * scale) for x, y in coords]
619
+
620
+ radius = (self.getBoxSize() * scale) / 4
621
+ h, w = img.shape
622
+
623
+ # --- Create figure ---
624
+ fig, ax = plt.subplots(figsize=(w / 100, h / 100), dpi=100)
625
+ ax.set_position([0, 0, 1, 1]) # axes fill figure
626
+ ax.axis('off')
627
+ # --- Show image ---
628
+ ax.imshow(img, cmap='gray', origin='upper', vmin=0, vmax=255)
629
+ # --- Overlay mask in blue ---
630
+ if mask is not None:
631
+ ax.imshow(mask, cmap='YlGnBu', origin='upper', alpha=mask)
632
+
633
+ # --- Fix axes, remove background and borders ---
634
+ ax.set_xlim(0, w)
635
+ ax.set_ylim(h, 0)
636
+ ax.set_facecolor('none')
637
+
638
+ # --- Draw particles using PatchCollection ---
639
+ if coords:
640
+ patches = [Circle((x, y), radius=radius) for x, y in coords]
641
+ collection = PatchCollection(patches, edgecolor='red', facecolor='none', linewidth=1)
642
+ ax.add_collection(collection)
643
+
644
+ # --- Save thumbnail ---
645
+ plt.savefig(thumbFn, dpi=80, bbox_inches=None, pad_inches=0, pil_kwargs={"compress_level": 4})
646
+ plt.close(fig)
647
+
648
+ def read_star_coordinates(self, posFn):
649
+ coords = []
650
+ with open(posFn) as f:
651
+ lines = f.readlines()
652
+
653
+ in_data_particles = False
654
+ for line in lines:
655
+ line = line.strip()
656
+ if not line or line.startswith('#'):
657
+ continue
658
+
659
+ if line.startswith('data_particles'):
660
+ in_data_particles = True
661
+ continue
662
+ if not in_data_particles:
663
+ continue
664
+
665
+ if line.startswith('loop_') or line.startswith('_'):
666
+ continue
667
+
668
+ parts = line.split()
669
+ if len(parts) >= 4:
670
+ x = float(parts[2])
671
+ y = float(parts[3])
672
+ coords.append((x, y))
673
+
674
+ return coords
@@ -182,12 +182,12 @@ class XmippProtExtractParticles(ProtExtractParticles, XmippProtocol):
182
182
  help='Pixels outside this circle are assumed to be noise '
183
183
  'and their stddev is set to 1. Radius for '
184
184
  'background circle definition (in pix.). If this '
185
- 'value is 0, then half the box size is used.')
185
+ 'value is less than or equal to 0, then half the box size is used.')
186
186
 
187
187
  form.addParam('patchSize', params.IntParam, default=-1,
188
188
  label='Patch size for the variance filter (px)',
189
189
  expertLevel=LEVEL_ADVANCED,
190
- help='Windows size to make the variance filtter and '
190
+ help='Windows size to make the variance filter and '
191
191
  'compute the Gini coeff. A twice of the particle '
192
192
  'size is recommended. Set at -1 applies 1.5*BoxSize.')
193
193
 
@@ -158,7 +158,7 @@ class XmippProtExtractParticlesPairs(ProtExtractParticlesPair, XmippProtocol):
158
158
  'phase flip is not recommended.')
159
159
  form.addParam('doNormalize', BooleanParam, default=True,
160
160
  label='Normalize (Recommended)',
161
- help='It subtract a ramp in the gray values and '
161
+ help='It subtracts a ramp in the gray values and '
162
162
  'normalizes so that in the background there is 0 '
163
163
  'mean and standard deviation 1.')
164
164
  form.addParam('normType', EnumParam,
@@ -157,8 +157,8 @@ class XmippProtPreprocessParticles(XmippProcessParticles):
157
157
  help='Angstroms.')
158
158
  form.addParam('doNormalize', BooleanParam, default=False,
159
159
  label='Normalize',
160
- help='It subtract a ramp in the gray values and normalizes'
161
- 'so that in the background there is 0 mean and'
160
+ help='It subtracts a ramp in the gray values and normalizes '
161
+ 'so that in the background there is 0 mean and '
162
162
  'standard deviation 1.')
163
163
  form.addParam('normType', EnumParam, condition='doNormalize',
164
164
  label='Normalization type', expertLevel=LEVEL_ADVANCED,
@@ -169,10 +169,10 @@ class XmippProtPreprocessParticles(XmippProcessParticles):
169
169
  'Ramp: subtract background + NewXmipp')
170
170
  form.addParam('backRadius', IntParam, default=-1, condition='doNormalize',
171
171
  label='Background radius', expertLevel=LEVEL_ADVANCED,
172
- help='Pixels outside this circle are assumed to be noise and'
173
- 'their stddev is set to 1. Radius for background'
174
- 'circle definition (in pix.).'
175
- 'If this value is 0, then half the box size is used.')
172
+ help='Pixels outside this circle are assumed to be noise and '
173
+ 'their stddev is set to 1. Radius for background '
174
+ 'circle definition (in pix.). '
175
+ 'If this value is less than or equal to 0, then half the box size is used.')
176
176
  form.addParam('doCenter', BooleanParam, default=False,
177
177
  label='Center images')
178
178
  form.addParam('doPhaseFlip', BooleanParam, default=False,
@@ -40,6 +40,6 @@ _binVersion = 'v4' # Increase it if major release is generated in xmipp
40
40
  # - If several of the above are true, only change the biggest one applicable (
41
41
  # for example, if a fix is made and a new protocol are included in the same
42
42
  # pull request, increase the one related to the new protocol).
43
- __version__ = '26.0.1'
43
+ __version__ = '26.1.0'
44
44
 
45
45
  _currentDepVersion = '1.0'
@@ -34,7 +34,15 @@ from pyworkflow.viewer import DESKTOP_TKINTER, WEB_DJANGO, ProtocolViewer
34
34
 
35
35
  from pwem import emlib
36
36
  from xmipp3.convert import getXmippAttribute
37
- from xmipp3.protocols.protocol_deep_micrograph_screen import XmippProtDeepMicrographScreen
37
+ from xmipp3.protocols.protocol_deep_micrograph_screen import XmippProtDeepMicrographScreen, NUM_THUMBNAILS
38
+ from xmippLib import Image
39
+ import os
40
+ import numpy as np
41
+ import matplotlib.pyplot as plt
42
+ import matplotlib.image as mpimg
43
+ from matplotlib.patches import Patch
44
+ import matplotlib
45
+
38
46
 
39
47
  class XmippDeepMicrographViewer(ProtocolViewer):
40
48
  """
@@ -61,10 +69,18 @@ class XmippDeepMicrographViewer(ProtocolViewer):
61
69
  " to the threshold indicated in the box.\n"
62
70
  "If you like the result, save the result"
63
71
  " with the '+Coordinates' button")
64
-
72
+ form.addParam('visualizeMaskAndMic', LabelParam,
73
+ label=f"Visualize {NUM_THUMBNAILS} micrographs with the mask and coords. overlayed",
74
+ help="Visualize micrographs with the DeepMicrographCleaner mask "
75
+ "overlayed using a color transparency and the coords stamp.\n"
76
+ "The transparency and the color (blue to yellow) indicates the Deep score factor applied."
77
+ f"Will be shown the first {NUM_THUMBNAILS} miccrographs."
78
+ f"If aliasing arise is because the compresion of the thumbnails"
79
+ )
65
80
  def _getVisualizeDict(self):
66
81
  return {'visualizeCoordinates': self._visualizeCoordinates,
67
- 'visualizeHistogram': self._visualizeHistogram}
82
+ 'visualizeHistogram': self._visualizeHistogram,
83
+ 'visualizeMaskAndMic': self._visualizeMaskAndMic}
68
84
 
69
85
  def _visualizeCoordinates(self, e=None):
70
86
  views = []
@@ -119,8 +135,7 @@ class XmippDeepMicrographViewer(ProtocolViewer):
119
135
  plotter.createSubPlot("Deep micrograph score",
120
136
  "Deep micrograph score",
121
137
  "Number of Coordinates")
122
- cScores = [getXmippAttribute(coord, mdLabel).get()
123
- for coord in outCoords]
138
+ cScores = [getXmippAttribute(coord, mdLabel).get() for coord in outCoords]
124
139
  plotter.plotHist(cScores, nbins=numberOfBins)
125
140
  views.append(plotter)
126
141
  else:
@@ -129,3 +144,61 @@ class XmippDeepMicrographViewer(ProtocolViewer):
129
144
  print(" > Output not ready yet.")
130
145
 
131
146
  return views
147
+
148
+ def _visualizeMaskAndMic(self, e=None):
149
+ if not self.protocol.saveMicThumbnailWithMask.get():
150
+ return None
151
+
152
+ views = []
153
+ thumb_dir = self.protocol._getExtraPath('thumbnails')
154
+ thumbs = sorted([
155
+ os.path.join(thumb_dir, f)
156
+ for f in os.listdir(thumb_dir)
157
+ if f.lower().endswith('.png')
158
+ ])
159
+
160
+ if not thumbs:
161
+ return None
162
+
163
+ n = len(thumbs)
164
+ per_page = 15
165
+ cols = 5
166
+ rows = int(per_page / cols)
167
+
168
+ for page_start in range(0, n, per_page):
169
+ page_thumbs = thumbs[page_start:page_start + per_page]
170
+
171
+ fig = plt.figure(figsize=(cols * 5, rows * 5))
172
+ gs = matplotlib.gridspec.GridSpec(rows, cols, figure=fig, wspace=0.05, hspace=0.08)
173
+
174
+ axes = []
175
+ for i in range(rows * cols):
176
+ r, c = divmod(i, cols)
177
+ ax = fig.add_subplot(gs[r, c])
178
+ ax.axis('off')
179
+ axes.append(ax)
180
+
181
+ for i, fn in enumerate(page_thumbs):
182
+ img = mpimg.imread(fn)
183
+ axes[i].imshow(img)
184
+
185
+ for i in range(len(page_thumbs), rows * cols):
186
+ fig.delaxes(axes[i])
187
+
188
+ cmap = plt.get_cmap('YlGnBu')
189
+ norm = matplotlib.colors.Normalize(vmin=0, vmax=1)
190
+ sm = matplotlib.cm.ScalarMappable(cmap=cmap, norm=norm)
191
+ sm.set_array([])
192
+
193
+ cbar_ax = fig.add_axes([0.2, 0.05, 0.5, 0.02])
194
+ cbar = fig.colorbar(sm, cax=cbar_ax, orientation='horizontal')
195
+ cbar.set_label('Mask deep score')
196
+
197
+ try:
198
+ fig.canvas.manager.set_window_title(f'Thumbnails {page_start + 1}-{page_start + len(page_thumbs)}' )
199
+ except AttributeError:
200
+ pass
201
+
202
+ views.append(fig)
203
+
204
+ return views