Skip to content

Releases: willov/PyNLME

PyNLME v0.3.0

PyNLME v0.3.0 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Jun 15:27

Added

  • Multi-Dimensional Input Format: New support for grouped data format where each row represents a subject/group
    • stack_grouped_data() function to convert grouped format to stacked format
    • detect_data_format() function to automatically detect input format
    • Automatic format detection and conversion in validate_inputs()
    • Support for both 2D (single predictor) and 3D (multiple predictors) grouped input
    • Complete backwards compatibility with existing stacked format
    • New utility functions exported in main package API
  • Enhanced User Experience: Users can now provide data in natural matrix format instead of manually stacking
  • Comprehensive Testing: Added test_multidimensional_input.py with 7 test cases covering all scenarios
  • Documentation: Added detailed documentation and examples for multi-dimensional input format
  • Examples: Added demonstration scripts showing both traditional and new input formats

Fixed

  • SAEM Numerical Stability: Fixed overflow warning in Metropolis-Hastings acceptance probability calculation
    • Implemented numerically stable log-space computation to avoid exp() overflow
    • Ensures robust SAEM algorithm performance with extreme parameter values

PyNLME v0.2.3

PyNLME v0.2.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Jun 19:32

Changed

  • Rust Backend Architecture - Completely removed hardcoded model logic
    • Eliminated all fallback hardcoded exponential decay models from MLE and SAEM
    • Refactored all internal methods to require explicit Python model functions
    • Removed Optional wrapper types, ensuring clean dependency injection
    • Updated fit_internal, evaluate_model, sample_random_effects, etc.
    • Improved code maintainability by removing dead code paths
    • Backend now exclusively uses user-supplied Python model functions

Removed

  • Deprecated Methods - Removed unused fit methods with hardcoded models
  • Legacy Code - Eliminated hardcoded model paths and conditional logic

PyNLME v0.2.2

PyNLME v0.2.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Jun 14:20

Fixed

  • Rust Backend Integration - Fixed critical issues preventing Rust backend from working correctly
    • Corrected model function interface to handle Python functions properly
    • Fixed array dimension mismatches (2D → 1D) between Python and Rust
    • Removed inappropriate parameter constraints that prevented convergence
  • MATLAB Baseline Compatibility - Achieved compatibility with MATLAB nlmefit/nlmefitsa
    • Implemented correct bi-exponential model with log parameter transformations
    • Fixed parameterization to match MATLAB's ParamTransform=[0 1 0 1] specification
    • Updated indomethacin pharmacokinetic model to use proper exponential transforms
  • Parameter Optimization - Fixed optimization initialization and convergence
    • Corrected parameter passing from initial values (beta0) to optimizer
    • Improved gradient computation and parameter updates in Rust backend
    • Fixed mixed-effects parameter estimation for both MLE and SAEM algorithms

Changed

  • Test Tolerance - Adjusted MATLAB baseline test tolerance to 0.3 for realistic
    algorithmic differences in mixed-effects optimization
  • Model Implementation - Updated indomethacin model to bi-exponential form with
    proper parameter transformations matching MATLAB documentation

Improved

  • Algorithm Accuracy - Both nlmefit and nlmefitsa now converge to parameters
    close to MATLAB baseline values (within 0.3 tolerance)
  • Cross-platform Compatibility - Fixed optimization issues specific to macOS
    and other platforms
  • Backend Reliability - Rust backend now properly handles all test cases
    without falling back to Python implementation

PyNLME v0.1.15

PyNLME v0.1.15 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Jun 13:53

Fixed

  • Wheel Configuration - Fixed PyO3 configuration to use abi3-py311 instead of
    abi3-py38, ensuring wheels target the correct minimum Python version
  • Wheel Building - Cleaned up cibuildwheel configuration to avoid conflicts
    between workflow environment variables and pyproject.toml settings
  • Platform Support - Ensured wheels are built correctly for Python 3.11+
    across all platforms (Linux, Windows, macOS)

PyNLME v0.1.14

PyNLME v0.1.14 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Jun 13:19

Changed

  • Pipeline Testing - Testing the unified CI/CD pipeline to validate end-to-end
    workflow from version detection through automated release creation
  • Workflow Validation - Confirming that all 8 pipeline stages work correctly:
    version check → testing → release → wheel building → GitHub release