simple/ — home of the simple commanders implementing high-level application code
simple_commander_base.f90 — abstract base commander
simple_commander_cleanup2D.f90 — cleanup for molecule with large heterogeneity
simple_commanders_abinitio.f90 — abinitio 3D reconstruction in single- and multi-particle mode
simple_commanders_abinitio2D.f90 — ab initio 2D analysis
simple_commanders_atoms.f90 — operations on atoms, mostly used in SINGLE
simple_commanders_cavgs.f90 — analysis of class averages
simple_commanders_checks.f90 — checking info about images, project, or checking update calculations
simple_commanders_cluster2D.f90 — simultaneous 2D alignment and clustering of single-particle images
simple_commanders_distr.f90 — for managing distributed SIMPLE execution
simple_commanders_euclid.f90 — for sigma2 calculations in objfun=euclid 2D and 3D refinement
simple_commanders_euclid_distr.f90 — for distributed sigma2 calculations in objfun=euclid 2D and 3D refinement
simple_commanders_imgops.f90 — standard image operations: binarize, filter, denoise, normalize, scale etc.
simple_commanders_imgproc.f90 — standard EM image processing
simple_commanders_mask.f90 — masking and auto-masking
simple_commanders_misc.f90 — stuff that didn't fit elsewhere
simple_commanders_mkcavgs.f90 — for producing class averages
simple_commanders_ori.f90 — for operating on orientations
simple_commanders_pick.f90 — for picking, extraction, and making picking references
simple_commanders_preprocess.f90 — for pre-processing (motion correction, CTF estimation etc.)
simple_commanders_prob.f90
simple_commanders_project_cls.f90 — project commanders for dealing with 2D class-related things
simple_commanders_project_core.f90 — commanders for operating on projects (spproject) and associated files, the core stuff
simple_commanders_project_mov.f90 — project commanders for movie-related things
simple_commanders_project_ptcl.f90 — project commanders for particle-related things
simple_commanders_rec.f90 — 3D reconstruction and associated things
simple_commanders_rec_distr.f90
simple_commanders_refine3D.f90 — supporting 3D orientation search
simple_commanders_relion.f90 — supporting interoperability with RELION
simple_commanders_resolest.f90 — for resolution estimation
simple_commanders_sim.f90 — for simulating noise, particles, movies, atoms, etc.
simple_commanders_starproject.f90 — starproject import, export, etc.
simple_commanders_stkops.f90 — operations on image stacks
simple_commanders_validate.f90 — validation of stream functionalities in batch execution mode
simple_commanders_volops.f90 — operations on volumes
single/ — home of the single commanders implementing high-level application code
single_commanders_experimental.f90 — experimental commanders under development
single_commanders_nano2D.f90 — 2D analysis commanders used in SINGLE for nanoparticle processing
single_commanders_nano3D.f90 — 3D refinement and reconstruction commanders used in SINGLE for nanoparticle processing
single_commanders_trajectory.f90 — commanders operating on extracted time-trajectories, used in SINGLE for nanoparticle processing
single_commanders_tseries.f90 — commanders operating on the full time-series field of view, used in SINGLE for nanoparticle processing
test/ — home of the test commanders implementing high-level testing code
simple_commanders_test_class.f90 — for all class tests
simple_commanders_test_fft.f90 — for all fft tests
simple_commanders_test_geometry.f90 — for all geometry tests
simple_commanders_test_highlevel.f90 — for all highlevel tests
simple_commanders_test_io.f90 — for all input/output tests
simple_commanders_test_masks.f90 — for all masks tests
simple_commanders_test_network.f90 — for all network tests
simple_commanders_test_numerics.f90 — for all numerics tests
simple_commanders_test_optimize.f90 — for all optimize tests
simple_commanders_test_parallel.f90 — for all parallel tests
simple_commanders_test_stats.f90 — for all stats tests
simple_commanders_test_utils.f90 — for all utils tests
simple_test_mod_phasecorr.f90
ctf/ — home of the modules for estimation and application of the contrast transfer function
simple_ctf.f90 — defines the Contrast Transfer Function (CTF) of the electron microscope
simple_ctf_estimate_cost.f90 — cost functions for CTF fitting
simple_ctf_estimate_fit.f90 — routines for anisotroic (patched) CTF estimation
simple_ctf_estimate_iter.f90 — does one iteration of CTF estimation
exec/
simple_exec_abinitio3D.f90 — execution of abinitio3D commanders
simple_exec_cavgproc.f90 — execution of cavgs processing commanders
simple_exec_cluster2D.f90 — execution of cluster2D commanders
simple_exec_denoise.f90 — execution of denoising commanders
simple_exec_dock.f90 — execution of map docking commanders
simple_exec_filter.f90 — execution of filtering commanders
simple_exec_image.f90 — execution of image processing commanders
simple_exec_mask.f90 — execution of masking commanders
simple_exec_ori.f90 — execution of orientation commanders
simple_exec_other.f90 — execution of other commanders
simple_exec_preproc.f90 — execution of preprocessing commanders
simple_exec_print.f90 — execution of printing commanders
simple_exec_project.f90 — execution of project management commanders
simple_exec_refine3D.f90 — execution of 3D refinement commanders
simple_exec_res.f90 — execution of resolution estimation commanders
simple_exec_sim.f90 — execution of simulation commanders
simple_exec_sym.f90 — execution of symmetry-related commanders
simple_exec_validate.f90 — execution of validation commanders
simple_exec_volume.f90 — execution of volume manipulation commanders
simple_test_exec_class.f90 — execution of test class processing commanders
simple_test_exec_fft.f90 — execution of test fft processing commanders
simple_test_exec_geometry.f90 — execution of test geometry processing commanders
simple_test_exec_highlevel.f90 — execution of test highlevel processing commanders
simple_test_exec_io.f90 — execution of test input/output processing commanders
simple_test_exec_masks.f90 — execution of test masks processing commanders
simple_test_exec_network.f90 — execution of test network processing commanders
simple_test_exec_numerics.f90 — execution of test numerics processing commanders
simple_test_exec_optimize.f90 — execution of test optimize processing commanders
simple_test_exec_parallel.f90 — execution of test parallel processing commanders
simple_test_exec_stats.f90 — execution of test stats processing commanders
simple_test_exec_utils.f90 — execution of test utils processing commanders
single_exec_atom.f90
single_exec_map.f90
single_exec_nano2D.f90
single_exec_nano3D.f90
single_exec_trajectory.f90
single_exec_tseries.f90
single_exec_validate.f90
image/ — home of the submodules of the image class, its extensions, and its variants
simple_ft_expanded.f90 — expanded Fourier transform class for improved cache utilisation
simple_ftexp_shsrch.f90 — shift search with L-BFGS-B using expanded Fourier transforms (used in motion_correct)
simple_ftiter.f90 — Fourier index loop range generator and mapping of logical indexing to physical indexing
simple_image.f90 — the abstract image data type and its methods. 2D/3D & FT/real all implemented by this class and FTs done in-place to reduce memory usage
simple_image_access.f90 — image class getters, setters, serializers etc.
simple_image_arith.f90 — arithmetics on images
simple_image_bin.f90 — extension of the image class for binary images
simple_image_calc.f90 — calculating stuff from images
simple_image_checks.f90 — checking image stuff
simple_image_core.f90 — core image functionality, such as constructors/object lifecycle
simple_image_ctf.f90 — for applying CTF to images
simple_image_fft.f90 — core fft routines as well as fused optimized operations involving ffts
simple_image_filt.f90 — image filtering and denoising
simple_image_freq_anal.f90 — image frequency domain analysis, power spectrum etc.
simple_image_geom.f90 — geometrical image operations: window, shift, pad, clip etc.
simple_image_io.f90 — for reading and writing images from/to disk
simple_image_msk.f90 — extension of the image class to provide 2D/3D envelope and adaptive masking
simple_image_seg.f90 — image segmentation related stuff to support masking
simple_image_vis.f90 — for supporting visualization of images in various ways
simple_projector.f90 — projection of 3D volumes in the Fourier domain by convolution interpolation to generate band-pass limited Cartesian and polar 2D Fourier transforms
interp/ — home of the window functions for Fourier gridding interpolation
simple_edges_sqwins.f90 — square windows and mask edges
simple_gridding.f90 — utilities for convolution interpolation (gridding)
parallelization/ — home of strategies for different parallelization modes (distributed, shared-memory etc.)
simple_calc_pspec_strategy.f90
simple_cluster2D_strategy.f90
simple_ctf_estimate_strategy.f90
simple_extract_strategy.f90
simple_gen_pspecs_and_thumbs_strategy.f90
simple_make_cavgs_strategy.f90
simple_motion_correct_strategy.f90
simple_pick_strategy.f90
simple_preprocess_strategy.f90
simple_rec3D_strategy.f90
simple_reextract_strategy.f90
simple_refine3D_strategy.f90
search/ — home of strategies for 2D and 3D orientation search
simple_strategy2D.f90 — abstract base class defining the common strategy2D interface
simple_matcher_2Dprep.f90 — common routines used by the high-level strategy 2D and 3D matchers
simple_strategy2D_alloc.f90 — array allocation for concrete strategy2D extensions to improve caching and reduce alloc overheads
simple_strategy2D_eval.f90 — 2D strategy for objective function evaluation
simple_strategy2D_greedy.f90 — 2D strategy for exhaustive projection matching with greedy in-plane search
simple_strategy2D_greedy_smpl.f90 — 2D strategy for exhaustive projection matching with probabilistic in-plane search
simple_strategy2D_inpl.f90 — 2D strategy for in-plane refinement
simple_strategy2D_inpl_smpl.f90 — 2D strategy for in-plane refinement with probabilistic sampling
simple_strategy2D_matcher.f90 — high-level search routines for the cluster2D and abinitio2D applications
simple_strategy2D_snhc.f90 — 2D strategy for stochastic neighborhood hill climbing
simple_strategy2D_snhc_smpl.f90 — 2D strategy for stochastic neighborhood hill climbing with probabilistic in-plane search
simple_strategy2D_srch.f90 — common strategy2D methods and type specification for polymorphic strategy2D object creation are delegated to this class
simple_strategy2D_tseries.f90 — 2D strategy for time-restrained search, used in SINGLE
simple_strategy2D_utils.f90 — utility routines for 2D class average processing
simple_strategy3D.f90 — abstract base class defining the common strategy3D interface
simple_strategy3D_alloc.f90 — array allocation for concrete strategy3D extensions to improve caching and reduce alloc overheads
simple_strategy3D_eval.f90 — 3D strategy for objective function evaluation
simple_strategy3D_greedy.f90 — 3D strategy for exhaustive projection matching
simple_strategy3D_greedy_smpl.f90 — 3D strategy for exhaustive projection matching with probabilistic in-plane search
simple_strategy3D_greedy_sub.f90 — 3D strategy for neighborhood projection matching with exhaustive subspace initialization
simple_strategy3D_matcher.f90 — high-level search routines for the refine3D application
simple_strategy3D_prob.f90 — 3D strategy for probabilistic projection matching
simple_strategy3D_shc.f90 — 3D strategy for projection matching by stochastic hill climbing
simple_strategy3D_shc_smpl.f90 — 3D strategy for stochastic neighborhood hill climbing with probabilistic in-plane search
simple_strategy3D_snhc_smpl.f90 — 3D strategy for stochastic neighborhood hill climbing with probabilistic in-plane search
simple_strategy3D_srch.f90 — common strategy3D methods and type specification for polymorphic strategy3D object creation are delegated to this class
simple_strategy3D_utils.f90 — utility routines for 3D strategies
stream/ — home of the stream task commanders in the pipelined stream application and their utilities
simple_mini_stream_utils.f90 — utilities for running the mini batch version of the stream
simple_stream2D_state.f90 — singleton for common state variables across the stream modules
simple_stream_chunk.f90 — abstract data type for the stream_chunk, defining a chunk of data processed in parallel
simple_stream_chunk2D_utils.f90 — utilities for chunk-based 2D clustering in stream
simple_stream_cluster2D_micro.f90 — high-level batch testing of 2D refinement within clusters of 2D averages from subsets
simple_stream_cluster2D_subsets.f90 — high-level batch testing of the sieving logics used in the stream
simple_stream_cluster2D_subsets_refine.f90 — high-level batch testing of 2D refinement within clusters of 2D averages from subsets
simple_stream_cluster2D_utils.f90 — utilities for running 2D clustering in the stream
simple_stream_p01_preprocess.f90 — task 1 in the stream pipeline: pre-processing (movie registration, CTF estimation, segmentation-based picking)
simple_stream_p02_assign_optics.f90 — task 2 in the stream pipeline: assigning optics groups for when beam-tilt is used to change the exposure area
simple_stream_p03_opening2D.f90 — task 3 in the stream pipeline: the first 2D analyis from segmentation picked particles used for initial screening and generation of picking references
simple_stream_p04_refpick_extract.f90 — task 4 in the stream pipeline: reference-based picking and extraction
simple_stream_p05_sieve_cavgs.f90 — task 5 in the stream pipeline: chunk-based 2D clustering and automatic selection of high-quality class averages (sieving)
simple_stream_p06_pool2D.f90 — task 6 in the stream pipeline: global 2D refinement of pooled particles from the sieving
simple_stream_pool2D_utils.f90 — utilities for running the pool 2D refinement
simple_stream_utils.f90 — various stream utilities
simple_stream_watcher.f90 — movie watcher for stream processing
ui/
simple_ui.f90 — the main user interface module
simple_ui_hash.f90 — extension type providing typed convenience accessors for ui_param & ui_program
simple_ui_param.f90 — module defining the ui_param type, which is used to define input parameters for the simple_ui_program interface
simple_ui_params_common.f90 — module defining the common parameters for all simple_ui_program interfaces
simple_ui_program.f90 — module defining the main user interface program type and associated methods
simple_ui_simple_group.f90 — aggregates SIMPLE (non-stream) ui program constructors
simple_ui_single_group.f90 — aggregates SINGLE ui program constructors
simple_ui_stream_group.f90 — aggregates SIMPLE stream ui program constructors
simple_ui_test_group.f90 — aggregates SIMPLE TEST ui program constructors
simple_ui_utils.f90 — module defining utility procedures for the simple_ui modules
simple/
simple_ui_abinitio3D.f90 — module defining the user interfaces for ab initio 3D reconstruction programs in the simple_exec suite
simple_ui_cavgproc.f90 — module defining the user interfaces for class average processing programs in the simple_exec suite
simple_ui_cluster2D.f90 — module defining the user interfaces for 2D clustering and related programs in the simple_exec suite
simple_ui_denoise.f90 — module defining the user interfaces for denoising programs in the simple_exec suite
simple_ui_dock.f90 — module defining the user interfaces for docking programs in the simple_exec suite
simple_ui_filter.f90 — module defining the user interfaces for filtering programs in the simple_exec suite
simple_ui_image.f90 — module defining the user interfaces for general image processing programs in the simple_exec suite
simple_ui_mask.f90 — module defining the user interfaces for masking programs in the simple_exec suite
simple_ui_ori.f90 — module defining the user interfaces for orientation processing programs in the simple_exec suite
simple_ui_other.f90 — module defining the user interfaces for miscellaneous programs in the simple_exec suite
simple_ui_preproc.f90 — module defining the user interfaces for pre-processing programs in the simple_exec suite
simple_ui_print.f90 — module defining the user interfaces for printing programs in the simple_exec suite
simple_ui_project.f90 — module defining the user interfaces for project management programs in the simple_exec suite
simple_ui_refine3D.f90 — module defining the user interfaces for 3D refinement programs in the simple_exec suite
simple_ui_res.f90 — module defining the user interfaces for resolution estimation programs in the simple_exec suite
simple_ui_sim.f90 — module defining the user interfaces for simulation programs in the simple_exec suite
simple_ui_stream.f90 — module defining the user interfaces for streaming workflows in the simple_exec suite
simple_ui_sym.f90 — module defining the user interfaces for symmetry-related programs in the simple_exec suite
simple_ui_validation.f90 — module defining the user interfaces for validation programs in the simple_exec suite
simple_ui_volume.f90 — module defining the user interfaces for volume processing programs in the simple_exec suite
simple_test/
simple_test_ui_class.f90 — module defining the user interfaces for per class test programs in the simple_test_exec suite
simple_test_ui_fft.f90 — module defining the user interfaces for fft testprograms in the simple_test_exec suite
simple_test_ui_geometry.f90 — module defining the user interfaces for geometry test programs in the simple_test_exec suite
simple_test_ui_highlevel.f90 — module defining the user interfaces for highlevel test programs in the simple_test_exec suite
simple_test_ui_io.f90 — module defining the user interfaces for input/output test programs in the simple_test_exec suite
simple_test_ui_masks.f90 — module defining the user interfaces for masks test programs in the simple_test_exec suite
simple_test_ui_network.f90 — module defining the user interfaces for network test programs in the simple_test_exec suite
simple_test_ui_numerics.f90 — module defining the user interfaces for numerics programs in the simple_test_exec suite
simple_test_ui_optimize.f90 — module defining the user interfaces for optimize test programs in the simple_test_exec suite
simple_test_ui_parallel.f90 — module defining the user interfaces for parallel test programs in the simple_test_exec suite
simple_test_ui_stats.f90 — module defining the user interfaces for statistics test programs in the simple_test_exec suite
simple_test_ui_utils.f90 — module defining the user interfaces for utils programs in the simple_test_exec suite
single/
single_ui_atom.f90 — module defining the user interfaces for atom-related programs in the single_exec suite
single_ui_map.f90 — module defining the user interfaces for map-related programs in the single_exec suite
single_ui_nano2D.f90 — module defining the user interfaces for 2D analysis of nanoparticle time-series in the single_exec suite
single_ui_nano3D.f90 — module defining the user interfaces for 3D analysis of nanoparticles in the single_exec suite
single_ui_trajectory.f90 — module defining the user interfaces for trajectory analysis of nanoparticles in the single_exec suite
single_ui_tseries.f90 — module defining the user interfaces for time-series analysis in the single_exec suite
single_ui_validate.f90 — module defining the user interfaces for validation programs in the single_exec suite
volume/ — home of the volume reconstructor classes, the volume analyzers, the volume docking routines, and the symmetry search
simple_dock_vols.f90 — class for docking pairs of volumes using correlation search and an icosahedral sampling geomery
simple_reconstructor.f90 — 3D reconstruction from projections using convolution interpolation (gridding)
simple_reconstructor_eo.f90 — 3D reconstruction of even-odd pairs for FSC estimation
simple_volanalyzer.f90 — for analyzing sets of ab initio volumes, current implementation just outputting the medoid
simple_volinterp.f90 — projection of 3D volumes in the Fourier domain by convolution interpolation to generate band-pass limited Cartesian and polar 2D Fourier transforms, high-level routines
simple_volpft_corrcalc.f90 — fast cross-correlation calculation between Fourier volumes using defined sampling space geometries
simple_volpft_symsrch.f90 — symmetry search using polar volume representation
utils/ — utilities source code directory
simple_block_tree.f90
simple_corrmat.f90 — for calculation of correlation matrices
simple_eulspace_neigh_map.f90
simple_exec_helpers.f90 — helpers for restarted execution, asynchronous execution, script-based execution etc.
simple_forked_process.f90 — various unix forking utilities
simple_forked_process_tester.f90 — unit tests for forked process module
simple_gauss2Dfit.f90 — Module for fitting the intensity distributions of 2D particle image arrays with 2D multivariate Gaussians
simple_imgarr_utils.f90 — utilities for image arrays
simple_imgproc.f90 — various image processing routines
simple_is_check_assert.f90 — assertions
simple_jiffys.f90 — jiffy = the time it takes light to travel one centimeter in vacuum
simple_magic_boxes.f90 — box sizes optimised for FFTW perfomance
simple_map_reduce.f90 — routines for distributed SIMPLE execution
simple_memoize_ft_maps.f90 — Light-weight module to memoize logical to physical address/spatial frequency mapping and avoid re-computing them repeatedly