Skip to content

Releases: veg/hyphy

2.5.93

23 Dec 19:22
8a6d314

Choose a tag to compare

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 SimplexMethod to 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).
  • Tree Tools: Updated Trim Label Tree to 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

22 Dec 17:58
d859c24

Choose a tag to compare

This is a minor release which turns OFF native tuning flags in CMakeLists by default hoping to resolve BioConda CI errors.
There are also minor optimzation settings tweaks for FEL, MEME, and CFEL.

2.5.91

21 Dec 15:35
81a83c9

Choose a tag to compare

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 CFEL
  • e173fa53 - CI: Update WASM workflow to deploy artifacts to GitHub Pages

2.5.90

12 Dec 15:23
a362e3d

Choose a tag to compare

Title

Version 2.5.90: Optimization improvements

Key Changes

⚙️ Core Engine & Optimization

  • Boundary Variable Logic: Implemented changes in likefunc.cpp to "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, and BUSTED.wbf to 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.90
  • 6a84a08 - 2.5.90
  • 4ad0080 - Tinkering with boundary variables

2.5.89

10 Dec 00:33
ef688be

Choose a tag to compare

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.cpp to 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.cpp and global_things.cpp (42cf735b).

🧬 Analysis Methods

  • RELAX: Addressed specific issues in RELAX.bf, including updates to global_things.cpp and likefunc.cpp to 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 tweaks
  • 98fff77 - Gradient block tweaks
  • 839b418 - Tweaks
  • 4f60981 - Optimization improvements
  • 9707254 - Tweaks
  • 10f0647 - Optimization tweaks
  • 42cf735 - minor fixes

2.5.88

07 Dec 00:01
93e153f

Choose a tag to compare

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.cpp and global_things.cpp (1dec4eef, 36322dc8).
  • Formula Evaluation: Significant updates to formula.cpp and formula.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.bf and SelectionAnalyses/RELAX.bf (9dea386c).

📦 Release

  • Version Bump: Bumped version to 2.5.88 (28f83598).

2.5.86

10 Nov 14:22
361fde3

Choose a tag to compare

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

28 Oct 20:13
87689d4

Choose a tag to compare

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

06 Oct 20:58
1d88165

Choose a tag to compare

Significant changes.

  1. 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.
  2. Based on issue #1878 (but more broadly), hyphy will now throw an error if dataset validation checks fail. Previosuly, many were treated as warnings (viewable in messages.log with -m option) 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 with STRICT_ALIGNMENT_VALIDATION_MODE=0; HyPhy environment variable.
  3. Adding constant site ASR reporting for Contrast-FEL
  4. Script bug fixes. The first site in any alignment would not be screened by FEL or MEME due to incorrect filtering.
  5. 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

2.5.83

30 Sep 20:04
f34a1e0

Choose a tag to compare

What's Changed

Full Changelog: 2.5.82...2.5.83