Releases: veg/hyphy
2.5.93
Title
Version 2.5.93: Performance Optimizations, BUSTED v4.7, and Analysis Tweaks
Description
This release brings significant performance improvements to the core likelihood engine, including a modernized Simplex optimization method and SIMD (NEON) enhancements for matrix-vector products. It also updates BUSTED to version 4.7 with new advanced options for handling misalignment artifacts ("error sink"), and includes various tuning for selection analyses (FEL, MEME, Contrast-FEL).
Key Changes
🚀 Performance & Core Engine
- Simplex Optimizer: Major rewrite of the
SimplexMethodto use adaptive parameters (better for high dimensions) and O(N) centroid updates, resulting in faster and more robust convergence (d7e0aa56). - SIMD/NEON: Implemented optimized blocked (8x8) matrix-vector products using NEON intrinsics, improving likelihood calculation speed on ARM architectures (
d7e0aa56). - OpenMP: Tuned scheduling parameters for matrix exponentiation to better handle varying workload sizes (
d7e0aa56). - Math: Simplified loop bounds in formula processing and adjusted matrix exponentiation scaling (
3e92f6d3).
🧬 Analysis Updates
- BUSTED v4.7: Added an "error-sink" feature (and associated advanced settings) to capture misalignment artifacts by including a specific rate class (
d7e0aa56). - Selection Analyses:
- Tuned optimization precision and methods for FEL, MEME, and Contrast-FEL to improve stability and performance (
3e92f6d3,d7e0aa56). - Contrast-FEL: Fixed a variable name typo (
d7e0aa56).
- Tuned optimization precision and methods for FEL, MEME, and Contrast-FEL to improve stability and performance (
- Tree Tools: Updated
Trim Label Treeto support semicolon-separated exclusion lists and verify tip existence (d7e0aa56).
👷 CI/CD & Build
- WASM: Updated the WebAssembly build workflow to simplify artifacts and deployment (
208cd6d3). - SVE: Removed specific support/checks for SVE instructions (
d7e0aa56).
Commits Included
d7e0aa56- This and that (Simplex, NEON, BUSTED 4.7)3e92f6d3- 2.5.92 (Analysis tweaks, core fixes)208cd6d3- Workflow update (WASM)
2.5.92
2.5.91
Title
Version 2.5.91: BUSTED-PH Fixes and WASM CI Updates
Description
This release addresses an error in BUSTED-PH related to multi-hit (MH) models and improves effort reporting in CFEL. It also updates the Continuous Integration (CI) workflow for WebAssembly (WASM) builds to deploy artifacts directly to GitHub Pages.
Key Changes
🐛 Bug Fixes & Improvements
- BUSTED-PH: Fixed a multi-hit (MH) error (
cbdf8078). - CFEL: Improved reporting of computational effort (
cbdf8078).
👷 CI/CD
- WASM Workflow: Updated the WASM build workflow to deploy artifacts to GitHub Pages (
e173fa53).
Commits Included
cbdf8078- Fixing BUSTED-PH MH error; improving effort reporting in CFELe173fa53- CI: Update WASM workflow to deploy artifacts to GitHub Pages
2.5.90
Title
Version 2.5.90: Optimization improvements
Key Changes
⚙️ Core Engine & Optimization
- Boundary Variable Logic: Implemented changes in
likefunc.cppto "tinker" with boundary variables, likely refining how the optimization engine handles parameters near their limits (4ad0080c). Added logic to hanlde "core" changing variables to focus iteration on those parameters driving improvements.
Removing SVE logic
- Remove SVE code in
matrix_kernels. This was an AI-generated function which resulted in failing compilation on ARM architecture.
🧪 Testing
- Test Suite Calibration: Updated optimization baselines for
IntermediateProtein.bf,multi-part-codon.bf, andBUSTED.wbfto align with the changes in boundary variable handling (4ad0080c).
📦 Release Management
- Version Bump: Incremented version to 2.5.90 (
6a84a08d,29487037).
Commits Included
2948703- 2.5.906a84a08- 2.5.904ad0080- Tinkering with boundary variables
2.5.89
Description
The primary focus has been on refining the likelihood function optimization routines, specifically regarding gradient calculations and block processing. Additionally, this update addresses specific issues in the RELAX selection analysis.
Key Changes
🚀 Optimization & Core Engine
- Gradient Block Tweaks: Implemented multiple refinements to gradient block processing in
likefunc.cppto improve convergence stability and speed (98fff774,4f609813,10f06472). - Likelihood Function Refinements: General optimization improvements and tweaks within the core likelihood function logic (
839b418a,97072548). - Batch Language Helpers: Minor fixes in
batchlanhelpers.cppandglobal_things.cpp(42cf735b).
🧬 Analysis Methods
- RELAX: Addressed specific issues in
RELAX.bf, including updates toglobal_things.cppandlikefunc.cppto support these fixes (bab6fa8e).
🧪 Testing
- Test Suite Updates: Updated unit tests and standard analyses (BUSTED, mtDNA-code, multi-part-codon) to align with core changes and ensure stability (
bab6fa8e,97072548,4f609813,42cf735b).
Commits Included
bab6fa8- RELAX fixes and tweaks98fff77- Gradient block tweaks839b418- Tweaks4f60981- Optimization improvements9707254- Tweaks10f0647- Optimization tweaks42cf735- minor fixes
2.5.88
Version 2.5.88: SIMD Refactoring, Matrix Kernel Additions, and Optimization
Description
This version introduces a series of optimizations, refactoring, and bug fixes. Key changes include improvements to SIMD operations, the addition of missing matrix kernels, and updates to core formula evaluation logic.
Key Changes
🚀 Optimizations & Refactoring
- SIMD Enhancements: Implemented SIMD refactoring and AI-guided improvements to enhance performance (
e4a1c6f9). - Core Optimizations: General changes and optimizations in
associative_list.cppandglobal_things.cpp(1dec4eef,36322dc8). - Formula Evaluation: Significant updates to
formula.cppandformula.h, optimizing formula processing and evaluation (9dea386c).
🐛 Fixes & Maintenance
- Matrix Kernels: Added a missing matrix kernel to address computation gaps (
fedeee2e,574d80bb,0eff2de8). - Debug Cleanup: Removed extraneous MPI debug prints to clean up output logs (
fedeee2e,574d80bb,0eff2de8). - Reformatting: Code reformatting for better style consistency (
f03e65d0).
🧬 Template Batch Files
- Workflow Updates: Modifications to
CleanStopCodons.bfandSelectionAnalyses/RELAX.bf(9dea386c).
📦 Release
- Version Bump: Bumped version to 2.5.88 (
28f83598).
2.5.86
New Features & Enhancements:
Ancestral Sequence Reconstruction in RELAX: The RELAX analysis script now includes ancestral sequence reconstruction, providing deeper insights into selection pressures by mapping
substitutions on the phylogeny.
Enhanced Tree Manipulation:
The trees.ParentMap function now correctly identifies the root of the tree.
It's now possible to remove multiple nodes from a tree in a single operation, improving efficiency for large tree manipulations.
New Genetic Code Function: A new function, genetic_code.ComputeStringToInteger, has been added to map codon strings to their corresponding integer representations.
Bug Fixes & Stability:
FMA3 Build Fix: A compilation bug affecting systems with FMA3 support has been resolved, ensuring wider compatibility.
Improved Path Handling: HyPhy now more gracefully handles long directory paths, preventing crashes when the current working directory path exceeds the buffer size.
RELAX Analysis Updates: The RELAX script has received several patches to improve the reliability and clarity of its JSON output and progress messages.
2.5.85
Release Notes
This release introduces several new features and bug fixes, including improvements to ancestral state reconstruction, updates to the RELAX analysis, and more stringent alignment checks.
New Features
- Ancestral State Reconstruction (ASR): ASR has been improved for constant sites, providing more accurate and detailed results. A new HBL function,
ancestral.ComputeCompressedSubstitutionConstantSite, has been added to handle ASR on constant sites more efficiently. - ASCII Art for Trees: Trees can now be visualized using ASCII art.
SUPPRESS_STATUS_UPDATES: A new option to suppress status updates has been added.
Bug Fixes
- aBSREL: Fixed bugs in aBSREL annotation when the --branches option is selected.
- RELAX: The RELAX analysis has been updated.
- Alignment Checks: Alignment checks are now more stringent.
Other Changes
- Unit tests have been added and tweaked.
- Callbacks have been cleaned up.
- Author contact information has been updated.
- Code documentation has been improved.
2.5.84
Significant changes.
- Based on issue 1877, HyPhy build scripts have been made more robust to incorrectly detecting SIMD features, and an branch for x86 processors supporting AVX (but not AVX2) has been added.
- Based on issue #1878 (but more broadly),
hyphywill now throw an error if dataset validation checks fail. Previosuly, many were treated as warnings (viewable inmessages.logwith-moption) and opaque actions were taken. These usually resulted in odd behavior or errors later on. Now these errors will be reported at dataset read time. Practically, some of the datasets that used to run, may no longer run. This can be disabled withSTRICT_ALIGNMENT_VALIDATION_MODE=0;HyPhy environment variable. - Adding constant site ASR reporting for Contrast-FEL
- Script bug fixes. The first site in any alignment would not be screened by FEL or MEME due to incorrect filtering.
- Comments and code cleanup.
(LLM generated) HyPhy 2.5.84 Release Notes
This release of HyPhy includes several new features, bug fixes, and performance improvements.
New Features
- Ancestral State Reconstruction (ASR): Improved ancestral state reconstruction for constant sites, providing more accurate and detailed ASR results. A new HBL function
ancestral.ComputeCompressedSubstitutionConstantSite has been added to handle ASR on constant sites more efficiently. The contrast-fel.bf analysis has been updated to use this new function.
(2fca8b7) - Suppress Status Updates: A new SUPPRESS_STATUS_UPDATES option has been added to suppress status line updates, which can be useful when running HyPhy in non-interactive environments.
(085cab9)
Bug Fixes and Improvements
- NEXUS Parser: The NEXUS parser has been made stricter to better enforce the NEXUS file format. It now reports errors for invalid constructs that were previously ignored or handled with a
warning. A new strict_alignment_validation_mode environment variable can be used to control the behavior of the parser. (6f3b296) - FADE Analysis: Fixed a bug in the FADE.bf script where a key was not being accessed correctly. (6f3b296)
- Matrix Multiplication: Fixed a bug in _Matrix::MultElements where the error message for dimension mismatch was not informative. (6f3b296)
- Documentation: Updated author contact information and added Doxygen-style comments to improve code documentation. (6f3b296)
Build System and Performance
- AVX/AVX2 Optimizations: The build system and core numerical libraries have been updated to better utilize AVX and AVX2 instruction sets for improved performance. This includes more
fine-grained control over AVX/AVX2 features at compile time. (9dca5e1, a9364d2, fe911d6, 1451846, 43c3e94, 15018a7, cb58e94, bb7ab90, 100f546, d6224ad, 32d3970, 65113a4,
20cf24b, 715eec5, c62c841, 7681935) - CMake: The CMakeLists.txt file has been updated for more stringent detection of compiler features. (3d1cf17)
- GitHub Actions: The build_and_test.yml workflow has been removed. (2fca8b7)