scipion-em-xmipp 26.0.2__tar.gz → 26.2.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.
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/CHANGELOG.md +16 -0
- {scipion_em_xmipp-26.0.2/scipion_em_xmipp.egg-info → scipion_em_xmipp-26.2.0}/PKG-INFO +2 -2
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/requirements.txt +1 -1
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0/scipion_em_xmipp.egg-info}/PKG-INFO +2 -2
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/scipion_em_xmipp.egg-info/SOURCES.txt +2 -2
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/scipion_em_xmipp.egg-info/requires.txt +1 -1
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/__init__.py +9 -10
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/constants.py +1 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_extract_particles_movies.py +1 -1
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/__init__.py +0 -2
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_compute_likelihood.py +2 -2
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_deep_micrograph_screen.py +149 -1
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_extract_particles.py +2 -2
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_extract_particles_pairs.py +1 -1
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_preprocess/protocol_preprocess.py +6 -6
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols.conf +0 -2
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/version.py +2 -2
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_deep_micrograph_cleaner.py +78 -5
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/LICENSE +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/MANIFEST.in +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/README.md +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/pyproject.toml +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/scipion_em_xmipp.egg-info/dependency_links.txt +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/scipion_em_xmipp.egg-info/entry_points.txt +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/scipion_em_xmipp.egg-info/top_level.txt +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/setup.cfg +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/base.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/bibtex.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/checkProtocolsConf.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/convert/__init__.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/convert/convert.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/convert/dataimport.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/convert/io_coordinates.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/__init__.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/__init__.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_angular_resolution_alignment.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_apply_deformation_zernike3d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_classification_gpuCorr.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_classification_gpuCorr_full.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_classification_gpuCorr_semi.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_classify_kmeans2d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_deep_align.py +0 -0
- {scipion_em_xmipp-26.0.2/xmipp3 → scipion_em_xmipp-26.2.0/xmipp3/legacy}/protocols/protocol_deep_center.py +0 -0
- {scipion_em_xmipp-26.0.2/xmipp3 → scipion_em_xmipp-26.2.0/xmipp3/legacy}/protocols/protocol_deep_center_predict.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_deep_denoising.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_enrich.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_kmeans_clustering.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_metaprotocol_create_output.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_metaprotocol_create_subset.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_metaprotocol_discrete_heterogeneity_scheduler.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_metaprotocol_golden_highres.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_mltomo.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_movie_average.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_movie_opticalflow.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_particle_boxsize.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_reconstruct_heterogeneous.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_rotational_spectra.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_screen_deeplearning.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_solid_angles.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_split_volume.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_split_volume_hierarchical_cluster.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_subtract_projection.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/tests/test_protocol_deep_denoising.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/tests/test_protocols_angular_resolution_alignment.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/tests/test_protocols_gpuCorr_classifier.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/tests/test_protocols_gpuCorr_fullStreaming.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/tests/test_protocols_gpuCorr_semiStreaming.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/tests/test_protocols_metaprotocol_golden_highres.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/tests/test_protocols_metaprotocol_heterogeneity.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/tests/test_protocols_mixed_movies.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/tests/test_protocols_solid_angles.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/tests/test_protocols_subtract_projection.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/tests/test_protocols_xmipp_movies.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/viewers/viewer_angular_resolution_alignment.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/viewers/viewer_deep_align.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/viewers/viewer_metaprotocol_golden_highres.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/viewers/viewer_mltomo.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/viewers/viewer_solid_angles.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/viewers/viewer_split_volume.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/logParser.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/programs.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_align_volume.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_align_volume_and_particles.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_analyze_local_ctf.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_angular_graph_consistency.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_apply_alignment.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_apply_tilt_to_ctf.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_apply_transformation_matrix.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_apply_zernike3d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_assignment_tilt_pair.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_break_symmetry.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_center_particles.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_cl2d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_cl2d_align.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_cl2d_clustering.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_classes_2d_mapping.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_classify_pca.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_classify_pca_streaming.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_compare_angles.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_compare_reprojections.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_consensus_classes.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_consensus_local_ctf.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_convert_pdb.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_core_analysis.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_create_gallery.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_ctf_consensus.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_ctf_correct_phase.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_ctf_correct_wiener2d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_ctf_defocus_group.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_ctf_micrographs.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_deep_hand.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_denoise_particles.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_eliminate_empty_images.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_extract_asymmetric_unit.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_flexalign.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_generate_reprojections.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_helical_parameters.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_kerdensom.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_local_ctf.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_mics_defocus_balancer.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_ml2d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_movie_alignment_consensus.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_movie_dose_analysis.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_movie_gain.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_movie_max_shift.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_movie_split_frames.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_multiple_fscs.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_multireference_alignability.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_normalize_strain.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_particle_pick.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_particle_pick_automatic.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_particle_pick_consensus.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_particle_pick_pairs.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_particle_pick_remove_duplicates.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_phantom_create.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_pick_noise.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_postProcessing_deepPostProcessing.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_preprocess/__init__.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_preprocess/geometrical_mask.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_preprocess/protocol_add_noise.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_preprocess/protocol_create_mask2d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_preprocess/protocol_create_mask3d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_preprocess/protocol_crop_resize.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_preprocess/protocol_filter.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_preprocess/protocol_image_operate.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_preprocess/protocol_mask.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_preprocess/protocol_movie_resize.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_preprocess/protocol_process.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_preprocess_micrographs.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_projmatch/__init__.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_projmatch/projmatch_form.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_projmatch/projmatch_initialize.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_projmatch/projmatch_steps.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_projmatch/protocol_projmatch.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_random_conical_tilt.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_ransac.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_reconstruct_fourier.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_reconstruct_highres.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_reconstruct_significant.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_reconstruct_swarm.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_resolution3d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_resolution_bfactor.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_resolution_deepres.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_resolution_directional.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_resolution_fso.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_resolution_monogenic_signal.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_rotate_volume.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_rotational_symmetry.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_screen_deepConsensus.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_screen_particles.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_shift_particles.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_shift_volume.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_simulate_ctf.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_structure_map.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_structure_map_zernike3d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_subtract_projection.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_tilt_analysis.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_trigger_data.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_validate_fscq.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_validate_nontilt.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_validate_overfitting.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_volume_adjust_sub.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_volume_consensus.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_volume_deform_zernike3d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_volume_local_adjust.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_volume_local_sharpening.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_volume_strain.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_write_testC.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_write_testP.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocolsCollectInfo.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/__init__.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_convert_xmipp.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocol_angular_graph_consistency.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocol_apply_transformation_matrix.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocol_compare_angles.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocol_consensus_classes3D.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocol_ctf_consensus.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocol_extract_asymmetric_unit.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocol_likelihood.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocol_monodir.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocol_multiple_fsc.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocol_multireference_alignability.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocol_reconstruct_fourier.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocol_screen_deepConsensus.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocol_simulate_ctf.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocol_split_frames.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocol_validate_fscq.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocol_validate_overfitting.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocols_add_noise.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocols_continuousflex.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocols_deepVolPostprocessing.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocols_deepcenter_predict.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocols_deepres.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocols_fso.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocols_highres.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocols_local_defocus.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocols_localdeblur.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocols_monores.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocols_realignment_classes.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocols_xmipp_2d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocols_xmipp_3d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocols_xmipp_mics.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocols_xmipp_movie_resize.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocols_xmipp_movies.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/tests/test_protocols_zernike3d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/utils.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/__init__.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/plotter.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_LL_matrix.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_analyze_local_ctf.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_apply_tilt_to_ctf.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_cl2d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_cl2d_clustering.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_consensus_classes.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_ctf_consensus.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_deepEMHancer.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_deep_consensus.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_dose_analysis.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_eliminate_empty_images.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_extract_asymmetric_unit.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_local_sharpening.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_ml2d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_movie_alignment.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_normalize_strain.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_pdb_deform_zernike3d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_projmatch.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_ransac.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_reconstruct_highres.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_resolution3d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_resolution_bfactor.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_resolution_deepres.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_resolution_directional.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_resolution_fso.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_resolution_monogenic_signal.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_structure_map.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_subtract_projection.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_swarm.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_validate_fscq.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_validate_nontilt.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_validate_overfitting.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_volume_consensus.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_volume_deform_zernike3d.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_volume_strain.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_volume_subtraction.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/wizards.py +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/xmipp_logo.png +0 -0
- {scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/xmipp_logo_devel.png +0 -0
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
## Release 26.2.0
|
|
2
|
+
- More scipion-em-xmipp
|
|
3
|
+
- xmipp3-installer package installed from pypi, reverting previous temporal fix
|
|
4
|
+
- Added new dependencie to solve error with libicu18
|
|
5
|
+
|
|
6
|
+
- Protocols deprecated (For more details visit [this](https://github.com/I2PC/xmipp/wiki/Deprecating-programs-and-protocols](https://i2pc.github.io/docs/Utils/Deprecated-programs/index.html)))
|
|
7
|
+
- DeepCenter
|
|
8
|
+
|
|
9
|
+
## Release 26.1.0
|
|
10
|
+
- Protocols updated
|
|
11
|
+
- deep_micrograph_cleaner: Showing thumbnails of micrographs with the mask and the coordinates stamps
|
|
12
|
+
- protocol_extract_particles, protocol_preprocess, protocol_compute_likelihood, protocol_extract_particles_pairs: fix typo
|
|
13
|
+
|
|
14
|
+
- More scipion-em-xmipp
|
|
15
|
+
- xmipp3-installer package installed from github release and not from pypi
|
|
16
|
+
|
|
1
17
|
## Release 26.0.2
|
|
2
18
|
- More scipion-em-xmipp
|
|
3
19
|
- Remove scipion dependencies from requirements
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: scipion-em-xmipp
|
|
3
|
-
Version: 26.0
|
|
3
|
+
Version: 26.2.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)
|
|
@@ -17,7 +17,7 @@ Requires-Dist: joblib
|
|
|
17
17
|
Requires-Dist: peppercorn
|
|
18
18
|
Requires-Dist: plotter
|
|
19
19
|
Requires-Dist: PyWavelets
|
|
20
|
-
Requires-Dist: xmipp3-installer
|
|
20
|
+
Requires-Dist: xmipp3-installer<3.0.0,>=2.0.4
|
|
21
21
|
Requires-Dist: numpy==1.*
|
|
22
22
|
Dynamic: license-file
|
|
23
23
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: scipion-em-xmipp
|
|
3
|
-
Version: 26.0
|
|
3
|
+
Version: 26.2.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)
|
|
@@ -17,7 +17,7 @@ Requires-Dist: joblib
|
|
|
17
17
|
Requires-Dist: peppercorn
|
|
18
18
|
Requires-Dist: plotter
|
|
19
19
|
Requires-Dist: PyWavelets
|
|
20
|
-
Requires-Dist: xmipp3-installer
|
|
20
|
+
Requires-Dist: xmipp3-installer<3.0.0,>=2.0.4
|
|
21
21
|
Requires-Dist: numpy==1.*
|
|
22
22
|
Dynamic: license-file
|
|
23
23
|
|
|
@@ -37,6 +37,8 @@ xmipp3/legacy/protocols/protocol_classification_gpuCorr_full.py
|
|
|
37
37
|
xmipp3/legacy/protocols/protocol_classification_gpuCorr_semi.py
|
|
38
38
|
xmipp3/legacy/protocols/protocol_classify_kmeans2d.py
|
|
39
39
|
xmipp3/legacy/protocols/protocol_deep_align.py
|
|
40
|
+
xmipp3/legacy/protocols/protocol_deep_center.py
|
|
41
|
+
xmipp3/legacy/protocols/protocol_deep_center_predict.py
|
|
40
42
|
xmipp3/legacy/protocols/protocol_deep_denoising.py
|
|
41
43
|
xmipp3/legacy/protocols/protocol_enrich.py
|
|
42
44
|
xmipp3/legacy/protocols/protocol_extract_particles_movies.py
|
|
@@ -104,8 +106,6 @@ xmipp3/protocols/protocol_ctf_correct_phase.py
|
|
|
104
106
|
xmipp3/protocols/protocol_ctf_correct_wiener2d.py
|
|
105
107
|
xmipp3/protocols/protocol_ctf_defocus_group.py
|
|
106
108
|
xmipp3/protocols/protocol_ctf_micrographs.py
|
|
107
|
-
xmipp3/protocols/protocol_deep_center.py
|
|
108
|
-
xmipp3/protocols/protocol_deep_center_predict.py
|
|
109
109
|
xmipp3/protocols/protocol_deep_hand.py
|
|
110
110
|
xmipp3/protocols/protocol_deep_micrograph_screen.py
|
|
111
111
|
xmipp3/protocols/protocol_denoise_particles.py
|
|
@@ -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
|
|
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",
|
|
@@ -160,7 +160,8 @@ class Plugin(pwem.Plugin):
|
|
|
160
160
|
"libjpeg-turbo",
|
|
161
161
|
]
|
|
162
162
|
|
|
163
|
-
CONDA_LIBSTDCXX_PACKAGE = "libstdcxx-ng"
|
|
163
|
+
CONDA_LIBSTDCXX_PACKAGE = "libstdcxx-ng "
|
|
164
|
+
CONDA_ICU_PACKAGE = 'icu=72'
|
|
164
165
|
|
|
165
166
|
if Config.isCondaInstallation():
|
|
166
167
|
condaEnvPath = os.environ['CONDA_PREFIX']
|
|
@@ -168,7 +169,7 @@ class Plugin(pwem.Plugin):
|
|
|
168
169
|
|
|
169
170
|
commands = CondaCommandDef(scipionEnv, cls.getCondaActivationCmd())
|
|
170
171
|
#commands.condaInstall('-c conda-forge --yes ' + ' '.join(CONDA_DEPENDENCIES))
|
|
171
|
-
commands.condaInstall('-c conda-forge --yes ' + CONDA_LIBSTDCXX_PACKAGE)
|
|
172
|
+
commands.condaInstall('-c conda-forge --yes ' + CONDA_LIBSTDCXX_PACKAGE + CONDA_ICU_PACKAGE)
|
|
172
173
|
commands.touch("deps_installed.txt")
|
|
173
174
|
env.addPackage(
|
|
174
175
|
'xmippDep', version=_currentDepVersion,
|
|
@@ -177,14 +178,12 @@ class Plugin(pwem.Plugin):
|
|
|
177
178
|
neededProgs=['conda'],
|
|
178
179
|
default=True
|
|
179
180
|
)
|
|
180
|
-
|
|
181
181
|
if develMode:
|
|
182
182
|
xmippSrc = 'xmippDev'
|
|
183
183
|
installCommands = [
|
|
184
184
|
(f'cd {pwem.Config.EM_ROOT} && rm -rf {xmippSrc} && '
|
|
185
185
|
f'git clone {XMIPP_GIT_URL} {xmippSrc} && '
|
|
186
186
|
f'cd {xmippSrc} && '
|
|
187
|
-
#f'git checkout {branchTest} && '
|
|
188
187
|
f'./xmipp ', COMPILE_TARGETS)
|
|
189
188
|
]
|
|
190
189
|
|
|
@@ -200,9 +199,9 @@ class Plugin(pwem.Plugin):
|
|
|
200
199
|
xmippSrc = f'xmipp3-{version._binVersion}'
|
|
201
200
|
installCommands = [
|
|
202
201
|
(f'cd .. && rm -rf {xmippSrc} && '
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
202
|
+
f'git clone {XMIPP_GIT_URL} -b {version._binVersion} {xmippSrc} && '
|
|
203
|
+
f'cd {xmippSrc} && '
|
|
204
|
+
f'./xmipp', COMPILE_TARGETS)
|
|
206
205
|
]
|
|
207
206
|
env.addPackage(
|
|
208
207
|
'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)
|
|
@@ -133,6 +133,4 @@ from .protocol_volume_consensus import XmippProtVolConsensus
|
|
|
133
133
|
from .protocol_volume_local_adjust import XmippProtLocalVolAdj
|
|
134
134
|
from .protocol_classes_2d_mapping import XmippProtCL2DMap
|
|
135
135
|
from .protocol_deep_hand import XmippProtDeepHand
|
|
136
|
-
from .protocol_deep_center import XmippProtDeepCenter
|
|
137
136
|
from .protocol_compute_likelihood import XmippProtComputeLikelihood
|
|
138
|
-
from .protocol_deep_center_predict import XmippProtDeepCenterPredict
|
{scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_compute_likelihood.py
RENAMED
|
@@ -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
|
{scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/protocols/protocol_extract_particles.py
RENAMED
|
@@ -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
|
|
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
|
|
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
|
|
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,
|
|
@@ -63,8 +63,6 @@ Protocols SPA = [
|
|
|
63
63
|
{"tag": "section", "text": "2D", "children": [
|
|
64
64
|
{"tag": "protocol_group", "text": "Align", "openItem": "False", "children": [
|
|
65
65
|
{"tag": "protocol", "value": "XmippProtCL2DAlign", "text": "default"},
|
|
66
|
-
{"tag": "protocol", "value": "XmippProtDeepCenter", "text": "default"},
|
|
67
|
-
{"tag": "protocol", "value": "XmippProtDeepCenterPredict", "text": "default"},
|
|
68
66
|
{"tag": "protocol", "value": "XmippProtApplyAlignment", "text": "default"},
|
|
69
67
|
{"tag": "section", "text": "more", "openItem": "False", "children": [
|
|
70
68
|
{"tag": "protocol", "value": "ProtAlignmentAssign", "text": "default"}
|
|
@@ -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
|
|
43
|
+
__version__ = '26.2.0'
|
|
44
44
|
|
|
45
|
-
_currentDepVersion = '1.
|
|
45
|
+
_currentDepVersion = '1.1'
|
{scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/viewers/viewer_deep_micrograph_cleaner.py
RENAMED
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/scipion_em_xmipp.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/scipion_em_xmipp.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{scipion_em_xmipp-26.0.2 → scipion_em_xmipp-26.2.0}/xmipp3/legacy/protocols/protocol_deep_align.py
RENAMED
|
File without changes
|