Skip to content

Test Coverage per Class

Rubén Meana-Pañeda edited this page Mar 12, 2026 · 1 revision

SIMPLE Codebase Objects Catalog

Exhaustive list of all objects (types/classes) used in the SIMPLE cryo-EM image processing software.

Total: 250+ distinct types/classes


Table of Contents

  1. Abstract Strategy Types
  2. Concrete Parallelization Strategies
  3. 3D Search Strategies
  4. 2D Search Strategies
  5. 3D Reconstruction
  6. 2D Allocation
  7. Commander Base & Tests
  8. UI/User Interface Types
  9. Queue/Job System Types
  10. Data Structure Types
  11. Communication & IPC Types
  12. Clustering Types
  13. Math/Statistics Types
  14. Project/File Format Types
  15. Volume/Image Processing
  16. Builder
  17. GUI/Visualization Types
  18. Symmetry
  19. Test Types
  20. Private Utilities

Abstract Strategy Types

Base classes for strategy pattern implementations in parallel processing:

  • cluster2D_strategy - Abstract base class for 2D classification parallelization strategies
  • ctf_estimate_strategy - Abstract base for CTF parameter estimation strategies
  • rec3D_strategy - Abstract base for 3D reconstruction strategies
  • gen_pspecs_and_thumbs_strategy - Abstract base for power spectrum and thumbnail generation
  • preprocess_strategy - Abstract base for preprocessing strategies
  • pick_strategy - Abstract base for particle picking strategies
  • motion_correct_strategy - Abstract base for motion correction strategies

Concrete Parallelization Strategies

Concrete implementations of strategy types supporting both in-memory and distributed execution:

Clustering Strategies

  • cluster2D_inmem_strategy - Shared-memory 2D classification
  • cluster2D_distr_strategy - Distributed 2D classification

CTF Estimation Strategies

  • ctf_estimate_inmem_strategy - Shared-memory CTF estimation
  • ctf_estimate_distr_strategy - Distributed CTF estimation

Reconstruction Strategies

  • rec3D_inmem_strategy - Shared-memory 3D reconstruction
  • rec3D_distr_strategy - Distributed 3D reconstruction

Power Spectrum Strategies

  • gen_pspecs_and_thumbs_inmem_strategy - Shared-memory pspec/thumbnail generation
  • gen_pspecs_and_thumbs_distr_strategy - Distributed pspec/thumbnail generation

Preprocessing Strategies

  • preprocess_inmem_strategy - Shared-memory preprocessing
  • preprocess_distr_strategy - Distributed preprocessing

Particle Picking Strategies

  • pick_inmem_strategy - Shared-memory particle picking
  • pick_distr_strategy - Distributed particle picking

Motion Correction Strategies

  • motion_correct_inmem_strategy - Shared-memory motion correction
  • motion_correct_distr_strategy - Distributed motion correction

Power Spectrum Calculation Strategies

  • calc_pspec_inmem_strategy - Shared-memory power spectrum calculation
  • calc_pspec_distr_strategy - Distributed power spectrum calculation

3D Refinement Strategies

  • refine3D_inmem_strategy - Shared-memory 3D refinement
  • refine3D_distr_strategy - Distributed 3D refinement

3D Search Strategies

Strategies for 3D particle orientation/position space searching:

  • strategy3D (abstract) - Base class for 3D search strategies
  • strategy3D_eval - Evaluation-based search strategy
  • strategy3D_greedy - Greedy search strategy
  • strategy3D_greedy_smpl - Greedy search with sampling
  • strategy3D_greedy_sub - Greedy search with subdivision
  • strategy3D_prob - Probabilistic search strategy
  • strategy3D_shc - Stochastic hill-climbing
  • strategy3D_shc_smpl - Stochastic hill-climbing with sampling
  • strategy3D_snhc_smpl - Stochastic Nelder-Mead hill-climbing with sampling

2D Search Strategies

Strategies for 2D particle orientation/position space searching:

  • strategy2D (abstract) - Base class for 2D search strategies
  • strategy2D_eval - Evaluation-based 2D search
  • strategy2D_greedy - Greedy 2D search
  • strategy2D_greedy_smpl - Greedy 2D search with sampling
  • strategy2D_inpl - In-plane 2D search
  • strategy2D_inpl_smpl - In-plane 2D search with sampling
  • strategy2D_snhc - Stochastic Nelder-Mead hill-climbing (2D)
  • strategy2D_snhc_smpl - Stochastic NMH with sampling (2D)
  • strategy2D_tseries - Time-series aligned 2D search

3D Reconstruction

Special types for 3D reconstruction:

  • strategy3D_spec - Strategy specification for 3D reconstruction
  • strategy3D_srch - Search strategy wrapper for 3D reconstruction
  • strategy3D_matcher - 3D particle-wise matching
    • Contains inner type: strategy3D_per_ptcl - Per-particle match data

2D Allocation

Memory allocation structures for 2D/3D:

  • strategy2D_alloc - Allocation tracking for 2D strategies
  • strategy3D_alloc - Allocation tracking for 3D strategies

Commander Base & Tests

Command pattern implementation with 130+ concrete command executors:

Base Class

  • commander_base (abstract) - Abstract command executor interface

Test Commands (3)

  • commander_test_strategy2D - Tests 2D classification strategy
  • commander_test_ui_hash_test - Tests UI hash functionality
  • commander_test_units - Runs unit tests

Project Management Commands (11)

  • commander_new_project - Create new project
  • commander_print_project_info - Display project information
  • commander_print_project_vals - Print all project values
  • commander_print_project_field - Print specific field
  • commander_update_project - Update project parameters
  • commander_merge_projects - Merge multiple projects
  • commander_replace_project_field - Replace project field values
  • commander_concatenate_projects - Concatenate projects
  • commander_aggregate_chunks - Aggregate chunked data
  • commander_extract_subproj - Extract subset of project
  • commander_selection - Create project selection

Particle Management Commands (8)

  • commander_import_particles - Import particle coordinates
  • commander_import_boxes - Import box coordinates
  • commander_zero_project_shifts - Zero all particle shifts
  • commander_prune_project_distr - Prune project (distributed)
  • commander_prune_project - Prune project particles
  • commander_scale_project - Rescale project coordinates
  • commander_split_stack - Split particle stacks

Movie Management Commands (2)

  • commander_import_movies - Import movie files
  • commander_write_mic_filetab - Write micrograph file table

Class Average Commands (3)

  • commander_import_cavgs - Import class averages
  • commander_export_cavgs - Export class averages
  • commander_sample_classes - Sample from classes

2D Classification Commands (3)

  • commander_cluster2D - Perform 2D classification
  • commander_cluster2D_distr_worker - 2D classification worker
  • commander_ppca_denoise_classes - Denoise class averages

2D Classification Stream Commands (2)

  • stream_cluster2D_subsets - Classify particle subsets
  • stream_cluster2D_subsets_refine - Refine subset classification

Preprocessing Commands (7)

  • commander_preprocess - General preprocessing
  • commander_motion_correct - Motion correction
  • commander_gen_pspecs_and_thumbs - Generate power spectra
  • commander_ctf_estimate - Estimate CTF parameters
  • stream_p01_preprocess - Stream preprocessing
  • stream_p02_assign_optics - Assign optics groups
  • stream_p03_opening2D - Opening 2D classification step

3D Refinement Commands (4)

  • nspace_commander - Search space commander base
  • commander_refine3D_auto - Automatic 3D refinement
  • commander_refine3D - Manual 3D refinement
  • commander_refine3D_distr_worker - Refinement worker

Ab Initio Reconstruction Commands (6)

  • commander_abinitio3D_cavgs - Ab initio with class averages
  • commander_abinitio3D_cavgs_fast - Fast ab initio
  • commander_abinitio3D - Ab initio 3D reconstruction
  • commander_abinitio2D - Ab initio 2D clustering
  • commander_multivol_assign - Multi-volume assignment
  • commander_abinitio2D - Alternative 2D ab initio

Nanoparticle Commands (3)

  • commander_autorefine3D_nano - Automatic nanoparticle refinement
  • commander_refine3D_nano - Manual nanoparticle refinement
  • commander_trajectory_reconstruct3D_distr - Trajectory reconstruction

3D Reconstruction Commands (4)

  • commander_rec3D - Standard 3D reconstruction
  • commander_rec3D_worker - Reconstruction worker
  • random_rec_commander - Random reconstruction
  • commander_volassemble - Assemble volume pieces

Volume Operations Commands (11)

  • commander_centervol - Center 3D volume
  • commander_dock_volpair - Dock volume pair
  • commander_noisevol - Add noise to volume
  • commander_postprocess - Postprocess volume
  • commander_ppca_volvar - Volume variance estimation
  • commander_reproject - Reproject from volume
  • commander_sharpvol - Sharpen volume
  • commander_symaxis_search - Symmetry axis search
  • commander_symmetrize_map - Apply symmetry
  • commander_symmetry_test - Test symmetry
  • commander_volanalyze - Analyze volume
  • commander_volops - Volume operations

Image Processing Commands (9)

  • commander_binarize - Binarize images
  • commander_edge_detect - Detect edges
  • commander_filter - Filter images
  • commander_ppca_denoise - Denoise images
  • commander_normalize - Normalize images
  • commander_scale - Scale images
  • commander_ctfops - CTF operations
  • commander_ctf_phaseflip - Phase-flip CTF
  • commander_estimate_diam - Estimate particle diameter

Masking Commands (4)

  • commander_mask - Apply mask
  • commander_automask2D - Automatic 2D masking
  • commander_automask - Automatic 3D masking
  • commander_auto_spher_mask - Automatic spherical mask SIMPLE Codebase Objects Catalog

Exhaustive list of all objects (types/classes) used in the SIMPLE cryo-EM image processing software.

Total: 250+ distinct types/classes


Table of Contents

  1. Abstract Strategy Types
  2. Concrete Parallelization Strategies
  3. 3D Search Strategies
  4. 2D Search Strategies
  5. 3D Reconstruction
  6. 2D Allocation
  7. Commander Base & Tests
  8. UI/User Interface Types
  9. Queue/Job System Types
  10. Data Structure Types
  11. Communication & IPC Types
  12. Clustering Types
  13. Math/Statistics Types
  14. Project/File Format Types
  15. Volume/Image Processing
  16. Builder
  17. GUI/Visualization Types
  18. Symmetry
  19. Test Types
  20. Private Utilities

Abstract Strategy Types

Base classes for strategy pattern implementations in parallel processing:

  • cluster2D_strategy - Abstract base class for 2D classification parallelization strategies
  • ctf_estimate_strategy - Abstract base for CTF parameter estimation strategies
  • rec3D_strategy - Abstract base for 3D reconstruction strategies
  • gen_pspecs_and_thumbs_strategy - Abstract base for power spectrum and thumbnail generation
  • preprocess_strategy - Abstract base for preprocessing strategies
  • pick_strategy - Abstract base for particle picking strategies
  • motion_correct_strategy - Abstract base for motion correction strategies

Concrete Parallelization Strategies

Concrete implementations of strategy types supporting both in-memory and distributed execution:

Clustering Strategies

  • cluster2D_inmem_strategy - Shared-memory 2D classification
  • cluster2D_distr_strategy - Distributed 2D classification

CTF Estimation Strategies

  • ctf_estimate_inmem_strategy - Shared-memory CTF estimation
  • ctf_estimate_distr_strategy - Distributed CTF estimation

Reconstruction Strategies

  • rec3D_inmem_strategy - Shared-memory 3D reconstruction
  • rec3D_distr_strategy - Distributed 3D reconstruction

Power Spectrum Strategies

  • gen_pspecs_and_thumbs_inmem_strategy - Shared-memory pspec/thumbnail generation
  • gen_pspecs_and_thumbs_distr_strategy - Distributed pspec/thumbnail generation

Preprocessing Strategies

  • preprocess_inmem_strategy - Shared-memory preprocessing
  • preprocess_distr_strategy - Distributed preprocessing

Particle Picking Strategies

  • pick_inmem_strategy - Shared-memory particle picking
  • pick_distr_strategy - Distributed particle picking

Motion Correction Strategies

  • motion_correct_inmem_strategy - Shared-memory motion correction
  • motion_correct_distr_strategy - Distributed motion correction

Power Spectrum Calculation Strategies

  • calc_pspec_inmem_strategy - Shared-memory power spectrum calculation
  • calc_pspec_distr_strategy - Distributed power spectrum calculation

3D Refinement Strategies

  • refine3D_inmem_strategy - Shared-memory 3D refinement
  • refine3D_distr_strategy - Distributed 3D refinement

3D Search Strategies

Strategies for 3D particle orientation/position space searching:

  • strategy3D (abstract) - Base class for 3D search strategies
  • strategy3D_eval - Evaluation-based search strategy
  • strategy3D_greedy - Greedy search strategy
  • strategy3D_greedy_smpl - Greedy search with sampling
  • strategy3D_greedy_sub - Greedy search with subdivision
  • strategy3D_prob - Probabilistic search strategy
  • strategy3D_shc - Stochastic hill-climbing
  • strategy3D_shc_smpl - Stochastic hill-climbing with sampling
  • strategy3D_snhc_smpl - Stochastic Nelder-Mead hill-climbing with sampling

2D Search Strategies

Strategies for 2D particle orientation/position space searching:

  • strategy2D (abstract) - Base class for 2D search strategies
  • strategy2D_eval - Evaluation-based 2D search
  • strategy2D_greedy - Greedy 2D search
  • strategy2D_greedy_smpl - Greedy 2D search with sampling
  • strategy2D_inpl - In-plane 2D search
  • strategy2D_inpl_smpl - In-plane 2D search with sampling
  • strategy2D_snhc - Stochastic Nelder-Mead hill-climbing (2D)
  • strategy2D_snhc_smpl - Stochastic NMH with sampling (2D)
  • strategy2D_tseries - Time-series aligned 2D search

3D Reconstruction

Special types for 3D reconstruction:

  • strategy3D_spec - Strategy specification for 3D reconstruction
  • strategy3D_srch - Search strategy wrapper for 3D reconstruction
  • strategy3D_matcher - 3D particle-wise matching
    • Contains inner type: strategy3D_per_ptcl - Per-particle match data

2D Allocation

Memory allocation structures for 2D/3D:

  • strategy2D_alloc - Allocation tracking for 2D strategies
  • strategy3D_alloc - Allocation tracking for 3D strategies

Commander Base & Tests

Command pattern implementation with 130+ concrete command executors:

Base Class

  • commander_base (abstract) - Abstract command executor interface

Test Commands (3)

  • commander_test_strategy2D - Tests 2D classification strategy
  • commander_test_ui_hash_test - Tests UI hash functionality
  • commander_test_units - Runs unit tests

Project Management Commands (11)

  • commander_new_project - Create new project
  • commander_print_project_info - Display project information
  • commander_print_project_vals - Print all project values
  • commander_print_project_field - Print specific field
  • commander_update_project - Update project parameters
  • commander_merge_projects - Merge multiple projects
  • commander_replace_project_field - Replace project field values
  • commander_concatenate_projects - Concatenate projects
  • commander_aggregate_chunks - Aggregate chunked data
  • commander_extract_subproj - Extract subset of project
  • commander_selection - Create project selection

Particle Management Commands (8)

  • commander_import_particles - Import particle coordinates
  • commander_import_boxes - Import box coordinates
  • commander_zero_project_shifts - Zero all particle shifts
  • commander_prune_project_distr - Prune project (distributed)
  • commander_prune_project - Prune project particles
  • commander_scale_project - Rescale project coordinates
  • commander_split_stack - Split particle stacks

Movie Management Commands (2)

  • commander_import_movies - Import movie files
  • commander_write_mic_filetab - Write micrograph file table

Class Average Commands (3)

  • commander_import_cavgs - Import class averages
  • commander_export_cavgs - Export class averages
  • commander_sample_classes - Sample from classes

2D Classification Commands (3)

  • commander_cluster2D - Perform 2D classification
  • commander_cluster2D_distr_worker - 2D classification worker
  • commander_ppca_denoise_classes - Denoise class averages

2D Classification Stream Commands (2)

  • stream_cluster2D_subsets - Classify particle subsets
  • stream_cluster2D_subsets_refine - Refine subset classification

Preprocessing Commands (7)

  • commander_preprocess - General preprocessing
  • commander_motion_correct - Motion correction
  • commander_gen_pspecs_and_thumbs - Generate power spectra
  • commander_ctf_estimate - Estimate CTF parameters
  • stream_p01_preprocess - Stream preprocessing
  • stream_p02_assign_optics - Assign optics groups
  • stream_p03_opening2D - Opening 2D classification step

3D Refinement Commands (4)

  • nspace_commander - Search space commander base
  • commander_refine3D_auto - Automatic 3D refinement
  • commander_refine3D - Manual 3D refinement
  • commander_refine3D_distr_worker - Refinement worker

Ab Initio Reconstruction Commands (6)

  • commander_abinitio3D_cavgs - Ab initio with class averages
  • commander_abinitio3D_cavgs_fast - Fast ab initio
  • commander_abinitio3D - Ab initio 3D reconstruction
  • commander_abinitio2D - Ab initio 2D clustering
  • commander_multivol_assign - Multi-volume assignment
  • commander_abinitio2D - Alternative 2D ab initio

Nanoparticle Commands (3)

  • commander_autorefine3D_nano - Automatic nanoparticle refinement
  • commander_refine3D_nano - Manual nanoparticle refinement
  • commander_trajectory_reconstruct3D_distr - Trajectory reconstruction

3D Reconstruction Commands (4)

  • commander_rec3D - Standard 3D reconstruction
  • commander_rec3D_worker - Reconstruction worker
  • random_rec_commander - Random reconstruction
  • commander_volassemble - Assemble volume pieces

Volume Operations Commands (11)

  • commander_centervol - Center 3D volume
  • commander_dock_volpair - Dock volume pair
  • commander_noisevol - Add noise to volume
  • commander_postprocess - Postprocess volume
  • commander_ppca_volvar - Volume variance estimation
  • commander_reproject - Reproject from volume
  • commander_sharpvol - Sharpen volume
  • commander_symaxis_search - Symmetry axis search
  • commander_symmetrize_map - Apply symmetry
  • commander_symmetry_test - Test symmetry
  • commander_volanalyze - Analyze volume
  • commander_volops - Volume operations

Image Processing Commands (9)

  • commander_binarize - Binarize images

Orientation Commands (7)

  • commander_make_oris - Generate orientations
  • commander_oriops - Orientation operations
  • commander_oristats - Orientation statistics
  • commander_oriconsensus - Consensus orientations
  • commander_rotmats2oris - Convert rotation matrices
  • commander_vizoris - Visualize orientations
  • commander_check_states - Check particle states

Make Class Averages Commands (4)

  • commander_make_cavgs_distr - Make averages (distributed)
  • commander_make_cavgs - Make class averages
  • commander_cavgassemble - Assemble average pieces
  • commander_write_classes - Write class information

Stack Operations Commands (5)

  • commander_convert - Convert stack format
  • commander_stack - Stack particles
  • commander_stackops - Stack operations
  • commander_cluster_stack - Cluster stacks
  • commander_match_stacks - Match stacks

Simulation Commands (5)

  • commander_simulate_noise - Add simulated noise
  • commander_simulate_particles - Simulate particles
  • commander_simulate_movie - Simulate movie
  • commander_simulate_subtomogram - Simulate subtomogram
  • commander_simulate_atoms - Simulate from atoms

Probability Commands (2)

  • commander_prob_tab - Probability table
  • commander_prob_align - Probabilistic alignment

Resolution Estimation Commands (7)

  • commander_fsc - Fourier Shell Correlation
  • commander_clin_fsc - Clinically-weighted FSC
  • commander_uniform_filter2D - 2D uniform filter
  • commander_uniform_filter3D - 3D uniform filter
  • commander_icm3D - 3D inverse cosine correction
  • commander_icm2D - 2D inverse cosine correction
  • commander_estimate_lpstages - Estimate low-pass stages

Validation Commands (2)

  • commander_mini_stream - Mini stream processing
  • commander_check_refpick - Validate reference picking

RELION Integration Commands (1)

  • commander_export_relion - Export to RELION format

STAR Format Commands (3)

  • commander_import_starproject - Import STAR project
  • commander_export_starproject - Export STAR project
  • commander_assign_optics_groups - Assign optics groups

Reference Picking Stream Commands (1)

  • stream_p04_refpick_extract - Reference picking extract

Sieve Commands (1)

  • stream_p05_sieve_cavgs - Sieve class averages

Pool Classification Commands (1)

  • stream_p06_pool2D - Pool 2D classifications

Stream Watcher (1)

  • stream_watcher - Watch stream progress
  • stream_chunk - Stream data chunk

Utility Commands (8)

  • commander_print_fsc - Print FSC
  • commander_print_magic_boxes - Print magic boxes
  • commander_print_dose_weights - Print dose weights
  • commander_kstest - Kolmogorov-Smirnov test
  • commander_pearsn - Pearson correlation
  • commander_mkdir - Make directory
  • commander_fractionate_movies_distr - Fractionate movies (distributed)
  • commander_fractionate_movies - Fractionate movies

Distribution Commands (1)

  • commander_split - Split for distribution

Euler Distribution Commands (1)

  • commander_calc_pspec_assemble - Calculate power spectrum

Check Commands (6)

  • commander_check_box - Check box coordinates
  • commander_check_nptcls - Check particle number
  • commander_check_stoch_update - Check stochastic update
  • commander_check_update_frac - Check update fraction
  • commander_info_image - Image information
  • commander_info_stktab - Stack table information

UI/User Interface Types

User interface and parameter management:

  • ui_hash (extends vrefhash) - Typed hash for UI parameters and programs
  • ui_param - Individual UI parameter definition
  • ui_program - UI program definition with multiple parameters
  • ui - Main user interface object
  • parameters - Main parameter container for application state

Queue/Job System Types

Job scheduling and parallel execution management:

Base Classes

  • qsys_base (abstract) - Abstract job queue system interface

Concrete Queue Systems

  • qsys_local - Local machine execution
  • qsys_slurm - SLURM workload manager
  • qsys_sge - Sun Grid Engine
  • qsys_pbs - Portable Batch System
  • qsys_lsf - Load Sharing Facility

Queue Management

  • qsys_env - Queue system environment configuration
  • qsys_factory - Factory for creating queue systems
  • qsys_ctrl - Queue system control and monitoring

Data Structure Types

Fundamental data structures and containers:

Hash Tables

  • vrefhash - Polymorphic reference hash table (stores any type)
  • vrefhash_node - Individual hash table node
  • vrefhash_bucket - Hash table bucket
  • hash - Standard (non-polymorphic) hash table
  • chash - Character-keyed hash table

Strings

  • string - String wrapper type with operations

Linked Lists

  • linked_list - Generic linked list
  • node - List node
  • list_iterator - List iterator for traversal

Record Lists

  • rec_list - List of typed records
  • rec (abstract) - Abstract record base class
    • project_rec (extends rec) - Project record
    • process_rec (extends rec) - Process record
    • chunk_rec (extends rec) - Chunk record
  • rec_iterator - Record list iterator

Trees

  • binary_tree - Binary search tree
  • bt_node - Binary tree node
  • int_list (nested) - Integer list within tree

Complex Structures

  • multi_dendro - Dendrogram/hierarchical clustering structure
  • srchspace_map - Search space mapper

Communication & IPC Types

Inter-process and network communication:

Networking

  • simple_socket - Socket-based communication
  • timeval (C-binding) - Time value structure
  • in_addr (C-binding) - Internet address structure
  • sockaddr_in (C-binding) - Socket address structure

Process Communication

  • thread_comm - Thread-to-thread communication
  • distr_comm - Distributed process communication
  • stream_http_communicator - HTTP-based stream communication

Message Queue

  • ipc_mq - Inter-process message queue
  • ipc_mq_attr - Message queue attributes

Clustering Types

Clustering algorithm implementations:

  • kmedoids - K-medoids clustering algorithm
  • hclust - Hierarchical clustering algorithm
  • aff_prop - Affinity propagation clustering

Math/Statistics Types

Mathematical and statistical computations:

  • online_var - Online (streaming) variance calculator
  • histogram - Histogram data structure and operations
  • tvfilter - Total variation filter
  • ran_tabu - Random tabu search optimizer

Project/File Format Types

Project and convergence management:

  • starproject - STAR file format project representation
  • convergence - Convergence tracking and monitoring

Volume/Image Processing

3D and 2D image processing:

  • reconstructor (extends image) - 3D volume reconstruction engine
  • dock_vols - Volume docking/alignment

Builder

Object construction utilities:

  • builder - Abstract factory/builder for complex object creation

GUI/Visualization Types

Graphical user interface and visualization:

Base Classes

  • gui_metadata_base (abstract) - Base for GUI metadata
  • gui_assembler - GUI component assembler

Metadata Types

  • gui_metadata_micrograph (extends gui_metadata_base) - Micrograph display metadata
  • gui_metadata_histogram (extends gui_metadata_base) - Histogram display metadata
  • gui_metadata_stream_preprocess (extends gui_metadata_base) - Stream preprocessing metadata

NICE Communication & Views

  • simple_nice_comm - NICE GUI communication interface
  • nice_thread_comm_message - NICE thread message
  • nice_stat_root - NICE statistics root
  • nice_stat_thumb_image - Thumbnail image statistics
  • nice_stat_thumb_image_meta - Thumbnail metadata

NICE Plot Types

  • nice_plot_doughnut - Doughnut chart visualization
  • nice_plot_bar - Bar chart visualization

NICE View Types

  • nice_view_micrographs - Micrograph viewer
  • nice_view_optics - Optics group viewer
  • nice_view_pick - Particle picking viewer
  • nice_view_cls2D - 2D classification viewer
  • nice_view_ini3D - Initial 3D volume viewer
  • nice_view_vols - Volume collection viewer

Symmetry

Symmetry operations:

  • sym - Symmetry information and operations

Test Types

Objects used primarily in testing:

  • particle - Test particle type
  • t_phasecorr - Phase correlation test structure
  • my_cfg - Generic test configuration
  • my_obj - Generic test object

Private Utilities

Internal/private utility types:

  • simple_private_prg - Private program definitions

Summary Statistics

Category Count
Abstract Strategy Types 7
Concrete Parallelization Strategies 18
3D Search Strategies 10
2D Search Strategies 9
3D Reconstruction 3
2D Allocation 2
Commander Base & Tests 130+
UI/User Interface Types 5
Queue/Job System Types 8
Data Structure Types 20
Communication & IPC Types 9
Clustering Types 3
Math/Statistics Types 4
Project/File Format Types 2
Volume/Image Processing 2
Builder 1
GUI/Visualization Types 16
Symmetry 1
Test Types 4
Private Utilities 1
TOTAL 250+

Architecture Notes

Design Patterns Used

  1. Strategy Pattern: Abstract base classes with multiple concrete implementations for parallelization, search, and processing
  2. Command Pattern: Commander base class with 130+ concrete command executors
  3. Factory Pattern: qsys_factory for queue system creation
  4. Polymorphism: Extensive use of Fortran 2008+ type extension and polymorphic references (via vrefhash)
  5. Iterator Pattern: list_iterator and rec_iterator for collection traversal

Key Architectural Components

  • Parallelization: Strategy pattern with in-memory vs distributed execution variants
  • Search Space: Separate 2D and 3D strategies for particle alignment
  • Job Scheduling: Abstract queue system with multiple backend support (SLURM, SGE, PBS, LSF, local)
  • UI System: Polymorphic hash-based parameter storage with type checking
  • Communication: Socket, thread, and distributed communication mechanisms
  • Data Structures: Polymorphic and typed containers for flexible data handling

Generated: March 2026 SIMPLE Cryo-EM Image Processing Software

Clone this wiki locally