Skip to content

Version 3.3.1

Choose a tag to compare

@TsingYang1112 TsingYang1112 released this 21 Aug 03:14
· 4 commits to main since this release

Highlights

  • Deterministic parallel CV search: Fixed critical issue where the same CV threshold produced different results when run in parallel search mode versus single-run mode.
  • Random seed isolation: Worker processes now have properly isolated RNG states, ensuring consistent results across all runs.
  • Improved reproducibility: Set iteration order is now deterministic across parallel workers, eliminating non-deterministic behavior in tree construction.

What's New

Bug Fixes

  • Fixed parallel vs single-run inconsistency: Worker processes in multiprocessing.Pool now re-initialize random seeds at entry point based on cv_value, ensuring each CV threshold has deterministic and independent RNG state.
  • Fixed set iteration non-determinism: find_all_path_nodes_scaffold, get_all_path_nodes_with_group_filter, and find_all_path_nodes now return sorted lists, eliminating iteration order variability across parallel workers.
  • Fixed Leiden algorithm RNG state: leiden_mutation_groups now explicitly resets random.seed() and np.random.seed() before running community detection, ensuring deterministic clustering results.
  • Enhanced reproducibility module: set_seed() now includes additional random module reset for forked processes, ensuring complete RNG isolation.

Code Quality

  • Improved deterministic behavior in parallel execution: All path-finding functions now guarantee consistent iteration order regardless of execution environment.
  • Enhanced random seed management: Worker processes now properly isolate RNG states, preventing cross-contamination between CV thresholds.

Impact

  • Parallel CV search now produces identical results to single-run mode
  • Fully backward compatible with v3.3.0
  • No changes to input/output formats or command-line interfaces

Notes

  • This release is strongly recommended for all users running CV threshold search, as previous versions could produce inconsistent results across runs.
  • No changes to input/output formats or command-line interfaces; fully backward compatible with v3.3.0 workflows.
  • For detailed usage, see the docs site: https://github.com/douyinlab/PhyloSOLID/