Releases: PyProphet/pyprophet
PyProphet v3.0.5
[3.0.5] - 2025-11-27
🚀 Features
- Add native installer creation scripts (DEB, RPM, DMG, EXE)
- Add native installer creation scripts (DEB, RPM, DMG, EXE)
- Enhance artifact upload process in GitHub Actions for Linux, Windows, and macOS
- (build) Improve DMG testing and installation process for macOS
- (build) Enhance build scripts for Windows and macOS with UPX compression and runtime dependency installation
- (build) Add --onefile option to PyInstaller for all platforms
- (build) Enhance runtime dependency installation in build scripts for Linux, macOS, and Windows
- (build) Streamline PyInstaller build process with onefile mode and module exclusions for macOS and Linux
- (build) Implement UPX compression for final binaries in build scripts for Linux, macOS, and Windows
- (build) Update packaging scripts to use single-file executable for Linux, macOS, and Windows
- (build) Enforce Python 3.11+ requirement in build scripts for Linux, macOS, and Windows
- (build) Create minimal entry point script to avoid path conflicts in PyInstaller builds for Linux, macOS, and Windows
- (build) Install pyprophet as a regular package to avoid import conflicts in build scripts for Linux, macOS, and Windows
- (build) Build and install pyprophet as a wheel for cleaner installation in Linux and Windows scripts
- (build) Optimize PyInstaller build process with temporary directory for cleaner execution
- (build) Enhance build script to save original directory and clean up previous builds
- (build) Clean up build artifacts and optimize wheel installation process in Linux script
- (build) Modify installation process to ensure pyprophet is installed in site-packages and verify dependencies
- (build) Enhance installation script to uninstall existing pyprophet and optimize wheel build process
- (build) Create isolated virtual environment for building and streamline pyprophet installation process
- (build) Streamline build script by cleaning artifacts and optimizing virtual environment setup
- (build) Optimize Linux build script by simplifying installation steps and improving error handling
- (build) Enhance Windows build script to clean Python cache and improve installation process
- (build) Update GitHub Actions workflow to improve error handling and streamline command execution
- (build) Enhance Windows build script to optimize PyInstaller process and add self-extracting archive support
- Implement lazy loading for pyarrow imports and improve error handling for parquet support
- Enhance version retrieval and sanitization for macOS build scripts
- (export) Add support for exporting minimal scored-report columns from split Parquet files
🐛 Bug Fixes
- (build) Handle errors in file permission setting and listing during package creation
- (tests) Fix bug with restructuring of ipf score to precursor mapping and IM boundaries
- (osw) Remove debug print statement for temporary table query in OSWWriter
- (report) Ensure axes are consistently indexed in plot_score_distributions function
💼 Other
- Requirements.txt
- Only add from_alignment column when alignment is actually used
- Extract helper method to reduce code duplication
- Filter out columns without types when building temp table schema
- Add RUN_ID to score peptide/protein views for proper joining
- Use LEFT JOIN for score views to avoid filtering out rows without matching RUN_ID
- Regtest for new test
- Regtest output
- Extract pyarrow import check to helper function to reduce code duplication
- Move file type reader methods into IO export classes
- Use existing _ensure_pyarrow() instead of custom function
- Regtest outputs
🚜 Refactor
- Simplify parquet reader and writer initialization by using utility functions
- Update pyarrow import to improve parquet file handling
- Streamline parquet file imports and initialization using utility functions
- Avoid circular imports by using type names for config checks
- Reorganize parquet file imports for improved clarity and initialization
- Enhance lazy loading for pyarrow imports and improve parquet initialization
- (parquet) Improve alignment group ID assignment and update score column references
⚙️ Miscellaneous Tasks
- Update CHANGELOG.md
- Replace xgboost with xgboost-cpu to reduce package size
- Update Python version to 3.11 in GitHub Actions workflows
- Remove local path for pyprophet in requirements.txt
- Simplify command paths in GitHub Actions workflow for pyprophet
- Remove tomli module exclusion from PyInstaller build scripts for Linux, macOS, and Windows
- Remove pip install command from GitHub Actions workflow to resolve numpy source directory issue
- Remove sklearn metadata copy from PyInstaller build script for Linux
- Add error handling to cleanup commands in Windows build script
- Remove pyarrow from main dependencies and add to parquet group
- Update pyarrow dependency to optional for Parquet support
- Exclude unnecessary modules from PyInstaller builds for Linux, macOS, and Windows
PyProphet v3.0.4
[3.0.4] - 2025-10-21
🚀 Features
- Enhance PyInstaller scripts for macOS and Windows with metadata collection and binary inclusion
- Expand GitHub Actions workflow to include comprehensive testing for all commands across platforms
- Add concurrency control to GitHub Actions workflows for improved efficiency
- Add concurrency control to multiple GitHub Actions workflows for improved efficiency
- Add PyInstaller hook for pyprophet package to ensure proper module collection
🐛 Bug Fixes
- (build) Fix archiving of windows build release to use zip instead of tar
💼 Other
- Pyinstaller build scripts
- Gha's for package building
- Create launcher for PyInstaller bundles with threading support
- Windows dist script
- Create PyInstaller hooks for duckdb and xgboost packages
- Implement PyInstaller hook for pyopenms package with dynamic library collection
- Move build scripts to a dedicated directory and update paths
- Update build script paths to reflect new directory structure
🚜 Refactor
- Remove tabulate dependency and update related code in main.py
- Remove numexpr dependency from project configuration
- Remove seaborn dependency from project configuration
- Reorganize imports and clean up unused code in report.py
- Remove statsmodels dependency and update related code in stats.py
- Reduce decimal precision in lfdr tests for consistency
- Update expected output values in lfdr tests for consistency
- Add Gaussian kernel density estimation comparison script
- Update expected output values in pyprophet score tests for consistency with change of kernel density estimate
- Filter script
- Reorganize imports and optimize database query in split.py
- Update expected output values in pyprophet IPF scoring tests for consistency
- Implement statsmodels KDEUnivariate method
- Update expected output values in pyprophet score tests for consistency
- Add comparison script for FFT-based KDE and statsmodels KDEUnivariate
- Replace DCT-based KDE with FFT-based KDE implementation
- Update expected output values in pyprophet IPF scoring tests for consistency
- Update expected output values in test_stats for consistency
- Update expected output values in pyprophet export test for consistency
- Update build and test workflows for improved clarity and manual trigger
📚 Documentation
- Update installation instructions and add options for pre-built executables and Docker
- Add contributing guidelines and commit message conventions
⚙️ Miscellaneous Tasks
- Remove feature branch from GitHub Actions workflow triggers
- Update Python version support and refine package discovery settings
- Add GitHub Actions workflow for automatic changelog generation
- Remove concurrency settings from GitHub Actions workflow
- Update CHANGELOG.md
- Refactor GitHub Actions workflow for improved build and artifact handling
PyProphet 3.0.3
What's Changed
Full Changelog: 3.0.2...3.0.3
PyProphet 3.0.2
What's Changed
- Fix/ipf osw alignment table by @singjc in #152
- change explode to using polars by @jcharkow in #153
- chore(deps): bump pillow from 11.2.1 to 11.3.0 by @dependabot[bot] in #149
- chore(deps): bump urllib3 from 2.4.0 to 2.5.0 by @dependabot[bot] in #148
- chore(deps): bump requests from 2.32.3 to 2.32.4 by @dependabot[bot] in #147
- Add: log colorizer option to global pyprophet settings by @singjc in #154
- chore(deps): bump pypdf from 5.6.0 to 6.0.0 by @dependabot[bot] in #157
- Feature: add exporting "score_peptide" and "score_protein" from .osw by @jcharkow in #159
- Feature: Export Library by @jcharkow in #156
- feat: support tuple input for lambda in pi0est function by @singjc in #160
- feature: more efficient sqMass to parquet export by @jcharkow in #158
- feat: add calibration report export functionality by @singjc in #161
- Update/export scored report by @singjc in #162
New Contributors
- @dependabot[bot] made their first contribution in #149
Full Changelog: 3.0.1...3.0.2
PyProphet 3.0.1
PyProphet 3.0.0
Release Highlights (Major Version Update)
This release introduces significant structural changes to improve modularity:
-
Introduced I/O Module: I/O logic is now modularized by file type (e.g., SQLite .osw, Parquet), to support new parquet format support.
-
Configurable Data Classes: Core algorithms (scoring, IPF, levels contexts) now use configuration dataclasses for cleaner parameter management and easier extension.
-
Click CLI Restructure: Command chaining has been removed to enable grouped subcommands (e.g., peptide, protein, peptidoform) for better CLI organization.
-
Deprecation Notice: Original flat subcommands remain for backwards compatibility but will be removed in a future release.
-
Added readthedocs for API and CLI documentation
-
Added linear SVM classifier model for scoring module.
All existing functionality should continue to work as is. Please report any issues if any.
What's Changed
Full Changelog: 2.3.4...3.0.0
PyProphet 2.3.4
Full Changelog: 2.3.3...2.3.4
PyProphet 2.3.3
PyProphet 2.3.2
Fix Dockerfile pyprophet installation. Previously used setup.py, but changed over to pyproject.toml, so installation needed to be changed to use pip install
Full Changelog: 2.3.1...2.3.2
PyProphet 2.3.1
What's Changed
Full Changelog: 2.3.0...2.3.1