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