Skip to content

Releases: veg/hyphy

2.5.97

23 Mar 12:25
6e11747

Choose a tag to compare

HyPhy v2.5.97: Performance Optimizations and Analysis Refinements.
Core Performance:

  • Verified ARM Neon micro-architectural optimizations for matrix operations and tree evaluation.
  • Optimized IsMaxElement using vector range masks for faster convergence checks.
  • Implemented register blocking for 4x4, 4x2x4, and 4x4x2 dense matrix kernels.
  • Optimized specialized pruning kernels with consolidated memory loads.
  • Implemented unrolled protein (D=20) and vectorized codon (D=61) kernels.
  • Tuned Scaling-and-Squaring heuristics for sparse/dense matrix exponentiation.

Analysis and Core Updates:

  • RELAX: Added LF state restoration from snapshot in FitMainTestPair.
  • MOLERATE: Upgraded to v0.0.2; added 'internal-only' branch labeling strategy and improved assertion messaging.
  • Core: Bumped version to 2.5.97 in global_things.cpp.
  • Core: Added boundary condition violation handling in likefunc2.cpp compute calls.

2.5.96

27 Feb 22:06
c2daaaf

Choose a tag to compare

HyPhy Release Notes: Version 2.5.96

Overview

This release introduces B-STILL (Beta-STILL), a specialized selection analysis framework designed to identify site-level evolutionary stasis (invariance) using a Bayesian FUBAR-style approach.

New Features

  • B-STILL (Selection Analysis): A new method for detecting sites that exhibit significantly less variation than expected under neutral models.

    • Implemented in res/TemplateBatchFiles/SelectionAnalyses/B-STILL.bf.
    • Optimized for large-scale genomic datasets to identify highly conserved functional motifs.
    • Added to files.lst for keyword-based invocation via the command line.
  • Version Update: Updated internal version string to 2.5.96.


For more information on running B-STILL, use:
hyphy b-still --alignment <path> --tree <path>

2.5.94

16 Feb 20:33
2320b4a

Choose a tag to compare

Version 2.5.94: Core Fixes and Analysis Framework Enhancements

Summary

This release focuses on improving the stability of core analysis frameworks (PRIME, BUSTED, CORA) and addressing critical edge cases in ancestral reconstruction.

Key Changes

🧬 Analysis Frameworks (libv3)

  • Ancestral Reconstruction: Fixed a critical bug in ancestral.bf where assertions would fail on constant sites with empty patterns (all-gap patterns) by relaxing the constraint in ComputeCompressedSubstitutionConstantSite from == 1 to <= 1.
  • PRIME: Massive updates to the PRIME framework including hierarchical testing and property-specific selection detection.
  • CORA Model: Introduced the CORA model implementation for advanced property-based selection analysis.
  • BUSTED & BUSTED-PH: Various fixes and refactorings to improve stability and result reporting.
  • MG_REV_PROPERTIES: Significant revisions and improvements to the property-based substitution model.
  • Mathematical Utilities: Added new mathematical functions to convenience/math.bf.
  • Miscellaneous: Minor stability and bug fixes in alignments.bf, IOFunctions.bf, and trim-label-tree.bf.

🚀 Core Engine

  • Version Bump: Formalized version 2.5.94 in global_things.cpp.

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.