Repository navigation
Releases: willov/PyNLME
Releases · willov/PyNLME
Release list
PyNLME v0.3.0
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 formatdetect_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.pywith 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
- Implemented numerically stable log-space computation to avoid
PyNLME v0.2.3
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
fitmethods with hardcoded models - Legacy Code - Eliminated hardcoded model paths and conditional logic
PyNLME v0.2.2
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
- Corrected parameter passing from initial values (
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
Fixed
- Wheel Configuration - Fixed PyO3 configuration to use
abi3-py311instead 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
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