-
Notifications
You must be signed in to change notification settings - Fork 8
Test Coverage per Class
Exhaustive list of all objects (types/classes) used in the SIMPLE cryo-EM image processing software.
Total: 250+ distinct types/classes
- Abstract Strategy Types
- Concrete Parallelization Strategies
- 3D Search Strategies
- 2D Search Strategies
- 3D Reconstruction
- 2D Allocation
- Commander Base & Tests
- UI/User Interface Types
- Queue/Job System Types
- Data Structure Types
- Communication & IPC Types
- Clustering Types
- Math/Statistics Types
- Project/File Format Types
- Volume/Image Processing
- Builder
- GUI/Visualization Types
- Symmetry
- Test Types
- Private Utilities
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 implementations of strategy types supporting both in-memory and distributed execution:
-
cluster2D_inmem_strategy- Shared-memory 2D classification -
cluster2D_distr_strategy- Distributed 2D classification
-
ctf_estimate_inmem_strategy- Shared-memory CTF estimation -
ctf_estimate_distr_strategy- Distributed CTF estimation
-
rec3D_inmem_strategy- Shared-memory 3D reconstruction -
rec3D_distr_strategy- Distributed 3D reconstruction
-
gen_pspecs_and_thumbs_inmem_strategy- Shared-memory pspec/thumbnail generation -
gen_pspecs_and_thumbs_distr_strategy- Distributed pspec/thumbnail generation
-
preprocess_inmem_strategy- Shared-memory preprocessing -
preprocess_distr_strategy- Distributed preprocessing
-
pick_inmem_strategy- Shared-memory particle picking -
pick_distr_strategy- Distributed particle picking
-
motion_correct_inmem_strategy- Shared-memory motion correction -
motion_correct_distr_strategy- Distributed motion correction
-
calc_pspec_inmem_strategy- Shared-memory power spectrum calculation -
calc_pspec_distr_strategy- Distributed power spectrum calculation
-
refine3D_inmem_strategy- Shared-memory 3D refinement -
refine3D_distr_strategy- Distributed 3D refinement
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
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
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
- Contains inner type:
Memory allocation structures for 2D/3D:
-
strategy2D_alloc- Allocation tracking for 2D strategies -
strategy3D_alloc- Allocation tracking for 3D strategies
Command pattern implementation with 130+ concrete command executors:
-
commander_base(abstract) - Abstract command executor interface
-
commander_test_strategy2D- Tests 2D classification strategy -
commander_test_ui_hash_test- Tests UI hash functionality -
commander_test_units- Runs unit tests
-
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
-
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
-
commander_import_movies- Import movie files -
commander_write_mic_filetab- Write micrograph file table
-
commander_import_cavgs- Import class averages -
commander_export_cavgs- Export class averages -
commander_sample_classes- Sample from classes
-
commander_cluster2D- Perform 2D classification -
commander_cluster2D_distr_worker- 2D classification worker -
commander_ppca_denoise_classes- Denoise class averages
-
stream_cluster2D_subsets- Classify particle subsets -
stream_cluster2D_subsets_refine- Refine subset classification
-
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
-
nspace_commander- Search space commander base -
commander_refine3D_auto- Automatic 3D refinement -
commander_refine3D- Manual 3D refinement -
commander_refine3D_distr_worker- Refinement worker
-
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
-
commander_autorefine3D_nano- Automatic nanoparticle refinement -
commander_refine3D_nano- Manual nanoparticle refinement -
commander_trajectory_reconstruct3D_distr- Trajectory reconstruction
-
commander_rec3D- Standard 3D reconstruction -
commander_rec3D_worker- Reconstruction worker -
random_rec_commander- Random reconstruction -
commander_volassemble- Assemble volume pieces
-
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
-
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
-
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
- Abstract Strategy Types
- Concrete Parallelization Strategies
- 3D Search Strategies
- 2D Search Strategies
- 3D Reconstruction
- 2D Allocation
- Commander Base & Tests
- UI/User Interface Types
- Queue/Job System Types
- Data Structure Types
- Communication & IPC Types
- Clustering Types
- Math/Statistics Types
- Project/File Format Types
- Volume/Image Processing
- Builder
- GUI/Visualization Types
- Symmetry
- Test Types
- Private Utilities
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 implementations of strategy types supporting both in-memory and distributed execution:
-
cluster2D_inmem_strategy- Shared-memory 2D classification -
cluster2D_distr_strategy- Distributed 2D classification
-
ctf_estimate_inmem_strategy- Shared-memory CTF estimation -
ctf_estimate_distr_strategy- Distributed CTF estimation
-
rec3D_inmem_strategy- Shared-memory 3D reconstruction -
rec3D_distr_strategy- Distributed 3D reconstruction
-
gen_pspecs_and_thumbs_inmem_strategy- Shared-memory pspec/thumbnail generation -
gen_pspecs_and_thumbs_distr_strategy- Distributed pspec/thumbnail generation
-
preprocess_inmem_strategy- Shared-memory preprocessing -
preprocess_distr_strategy- Distributed preprocessing
-
pick_inmem_strategy- Shared-memory particle picking -
pick_distr_strategy- Distributed particle picking
-
motion_correct_inmem_strategy- Shared-memory motion correction -
motion_correct_distr_strategy- Distributed motion correction
-
calc_pspec_inmem_strategy- Shared-memory power spectrum calculation -
calc_pspec_distr_strategy- Distributed power spectrum calculation
-
refine3D_inmem_strategy- Shared-memory 3D refinement -
refine3D_distr_strategy- Distributed 3D refinement
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
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
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
- Contains inner type:
Memory allocation structures for 2D/3D:
-
strategy2D_alloc- Allocation tracking for 2D strategies -
strategy3D_alloc- Allocation tracking for 3D strategies
Command pattern implementation with 130+ concrete command executors:
-
commander_base(abstract) - Abstract command executor interface
-
commander_test_strategy2D- Tests 2D classification strategy -
commander_test_ui_hash_test- Tests UI hash functionality -
commander_test_units- Runs unit tests
-
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
-
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
-
commander_import_movies- Import movie files -
commander_write_mic_filetab- Write micrograph file table
-
commander_import_cavgs- Import class averages -
commander_export_cavgs- Export class averages -
commander_sample_classes- Sample from classes
-
commander_cluster2D- Perform 2D classification -
commander_cluster2D_distr_worker- 2D classification worker -
commander_ppca_denoise_classes- Denoise class averages
-
stream_cluster2D_subsets- Classify particle subsets -
stream_cluster2D_subsets_refine- Refine subset classification
-
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
-
nspace_commander- Search space commander base -
commander_refine3D_auto- Automatic 3D refinement -
commander_refine3D- Manual 3D refinement -
commander_refine3D_distr_worker- Refinement worker
-
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
-
commander_autorefine3D_nano- Automatic nanoparticle refinement -
commander_refine3D_nano- Manual nanoparticle refinement -
commander_trajectory_reconstruct3D_distr- Trajectory reconstruction
-
commander_rec3D- Standard 3D reconstruction -
commander_rec3D_worker- Reconstruction worker -
random_rec_commander- Random reconstruction -
commander_volassemble- Assemble volume pieces
-
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
-
commander_binarize- Binarize images
-
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
-
commander_make_cavgs_distr- Make averages (distributed) -
commander_make_cavgs- Make class averages -
commander_cavgassemble- Assemble average pieces -
commander_write_classes- Write class information
-
commander_convert- Convert stack format -
commander_stack- Stack particles -
commander_stackops- Stack operations -
commander_cluster_stack- Cluster stacks -
commander_match_stacks- Match stacks
-
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
-
commander_prob_tab- Probability table -
commander_prob_align- Probabilistic alignment
-
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
-
commander_mini_stream- Mini stream processing -
commander_check_refpick- Validate reference picking
-
commander_export_relion- Export to RELION format
-
commander_import_starproject- Import STAR project -
commander_export_starproject- Export STAR project -
commander_assign_optics_groups- Assign optics groups
-
stream_p04_refpick_extract- Reference picking extract
-
stream_p05_sieve_cavgs- Sieve class averages
-
stream_p06_pool2D- Pool 2D classifications
-
stream_watcher- Watch stream progress -
stream_chunk- Stream data chunk
-
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
-
commander_split- Split for distribution
-
commander_calc_pspec_assemble- Calculate power spectrum
-
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
User interface and parameter management:
-
ui_hash(extendsvrefhash) - 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
Job scheduling and parallel execution management:
-
qsys_base(abstract) - Abstract job queue system interface
-
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
-
qsys_env- Queue system environment configuration -
qsys_factory- Factory for creating queue systems -
qsys_ctrl- Queue system control and monitoring
Fundamental data structures and containers:
-
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
-
string- String wrapper type with operations
-
linked_list- Generic linked list -
node- List node -
list_iterator- List iterator for traversal
-
rec_list- List of typed records -
rec(abstract) - Abstract record base class-
project_rec(extendsrec) - Project record -
process_rec(extendsrec) - Process record -
chunk_rec(extendsrec) - Chunk record
-
-
rec_iterator- Record list iterator
-
binary_tree- Binary search tree -
bt_node- Binary tree node -
int_list(nested) - Integer list within tree
-
multi_dendro- Dendrogram/hierarchical clustering structure -
srchspace_map- Search space mapper
Inter-process and network communication:
-
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
-
thread_comm- Thread-to-thread communication -
distr_comm- Distributed process communication -
stream_http_communicator- HTTP-based stream communication
-
ipc_mq- Inter-process message queue -
ipc_mq_attr- Message queue attributes
Clustering algorithm implementations:
-
kmedoids- K-medoids clustering algorithm -
hclust- Hierarchical clustering algorithm -
aff_prop- Affinity propagation clustering
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 and convergence management:
-
starproject- STAR file format project representation -
convergence- Convergence tracking and monitoring
3D and 2D image processing:
-
reconstructor(extendsimage) - 3D volume reconstruction engine -
dock_vols- Volume docking/alignment
Object construction utilities:
-
builder- Abstract factory/builder for complex object creation
Graphical user interface and visualization:
-
gui_metadata_base(abstract) - Base for GUI metadata -
gui_assembler- GUI component assembler
-
gui_metadata_micrograph(extendsgui_metadata_base) - Micrograph display metadata -
gui_metadata_histogram(extendsgui_metadata_base) - Histogram display metadata -
gui_metadata_stream_preprocess(extendsgui_metadata_base) - Stream preprocessing metadata
-
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_doughnut- Doughnut chart visualization -
nice_plot_bar- Bar chart visualization
-
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 operations:
-
sym- Symmetry information and operations
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
Internal/private utility types:
-
simple_private_prg- Private program definitions
| 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+ |
- Strategy Pattern: Abstract base classes with multiple concrete implementations for parallelization, search, and processing
- Command Pattern: Commander base class with 130+ concrete command executors
- Factory Pattern: qsys_factory for queue system creation
- Polymorphism: Extensive use of Fortran 2008+ type extension and polymorphic references (via vrefhash)
- Iterator Pattern: list_iterator and rec_iterator for collection traversal
- 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
Overview
Architecture & Design
Engineering Process
Performance