All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Fixed Python 3.12 compatibility issues with pandas StringArray in
set_index()calls:- Replaced
set_index()with direct index assignment usingpd.Index()to avoid StringArray unhashable type errors - Fixed index restoration from
devoptsdictionary in bothdenovo_refit_optionanddecompose_fit_optionpaths - Fixed index assignment in
make_final_solution()for process matrices, exposure matrices, and signature statistics
- Replaced
- Fixed Python 3.12 compatibility issues with pandas DataFrame/Series indexing and method calls:
- Updated
to_csv()calls to use keyword arguments (sep="\t") instead of positional arguments - Changed DataFrame/Series index access from
[0]to.iloc[0]throughout the codebase - Fixed dtype assignment when converting columns to strings with "%" suffix
- Updated
- Switched CI/CD from Travis CI to GitHub Actions. Updated README badge to reflect the new CI/CD platform.
- Added missing COSMIC v3.5 signature files: exome versions for all supported genome builds, mm39 genome build signatures, and rn7 genome build signatures.
- Updated COSMIC v3.5 signature files to match official COSMIC download (includes all signatures: CN26, ID24/ID25, SV11/SV12).
- Fixed missing COSMIC v3.5 signature files that were not included in the initial v3.5 release.
- Support for COSMIC v3.5 mutational signatures as the default reference signature version.
- Added COSMIC v3.5 signature files for all supported genome builds (GRCh37, GRCh38, mm9, mm10, rn6).
- Updated default
cosmic_versionparameter from 3.4 to 3.5 across all functions and CLI. - Updated
Tobacco_signaturessubgroup to include new signatures SBS100 and SBS109. - Updated README.md to reflect COSMIC v3.5 as the default version and include 3.5 in valid version options.
- Support for
decompose_fitin higher mutation contexts (288 and 1536) without collapsing to 96 whencollapse_to_SBS96=False. - Support for custom signature names in signature decomposition workflows.
- Improved context type handling in decomposition plots to correctly pass the mutation context type.
- Fixed variable reusage error in nested for loop that could cause incorrect behavior.
- Fixed missing
rn7andmm39reference signatures in package distribution (now included in MANIFEST.in). - Updated README.md to include correct
exclude_signature_subgroupsparameter documentation.
- Added
add_background_signaturesparameter (default:True) to control whether background signatures SBS1 and SBS5 are automatically added during signature assignment. - Parameter available in
spa_analyze(),signature_decomposition(), and all Analyzer functions (decompose_fit(),denovo_fit(),cosmic_fit()). - CLI parameter
--add_background_signaturesadded to match Python API functionality. - When set to
False, background signatures are not forced but may still be detected naturally if present in samples.
- Background signature assignment logic now respects the
add_background_signaturesparameter instead of always forcing SBS1/SBS5 inclusion.
- Implemented a CI/CD pipeline with Travis CI to automate the building and publishing of Docker images to Docker Hub.
- Refactored the handling of the
cpuparameter. The logic has been updated to pass the CPU count directly via the function's parameters, instead of through an internaldevoptsdictionary, to reduce complexity and improve code clarity.
- Added the
cpuparameter to the metadata output log.
- Parallel execution of SPA runs for improved performance on multi-core systems.
cpuparameter to control the number of processor cores used during assignment. Defaults to-1to use all available cores.
- Updated README to document the new
cpuparameter.
- Support for assigning mutational signatures using the
rn7andmm39genome builds.
- Updated dependency requirement to
pypdf>=6.0.0(previous versions contained a security vulnerability).
- Support for generating decomposition plots for custom signature sets.
- Refactored the test script to be more readable and maintainable.
- Removed redundant plotting of COSMIC signatures in the decomposition plots.
- Added rn7 and mm39 reference signatures.
- Modified rounding exposure values to handle low mutation counts.
- Replaced PDF-to-PNG conversion backend from
PyMuPDFtopdf2imagefor compatibility with Conda and improved portability. - Added new CLI parameter:
--sample_reconstruction_plotswith options'none'(default),'pdf','png', and'both'. - Updated
spa_analyzeand CLI dispatch logic to support format-based sample reconstruction plot output. - Default behavior now skips sample reconstruction plots unless explicitly requested.
- Removed
fitzdependency; added system requirement note forpopplerinsetup.pyand README.
- Added a pyproject.toml file to the repository for better project management and configuration.
- CLI from returning non-zero exit code when --help flag is passed.
- Update CI/CD pipelines installation of reference genome to include timeout to prevent long waits during installation.
- Updated dependencies: Now requires Pandas >= 2.0.0, NumPy >= 2.0.0, and Python >= 3.9.
- Dropped support for Python 3.8
- Replaced
PdfMergerwithPdfWriterdue to deprecation inpypdf >= 5.0.0.
- Addressed deprecation issues with
PdfMerger, ensuring compatibility with recentpypdfversions.
- Added a Dockerfile to the repository for containerization. Documentation on how to use the Dockerfile needs to be added to the README.
- Removed unnecessary imports from
setup.pyto clean up the codebase.
- Added CLI boolean handling to improve command-line interface usability.
- Added new pytests for CLI to ensure correct handling of booleans.
- Updated the README to reflect the new pytest additions.
- Updated CI/CD pipelines to accommodate pytest changes.
- Improved input_type value check mechanism to use .lower() before checking against values 'vcf' or 'matrix'.
- Updated dependency from PyPDF2 to pypdf to increase compatibility and resolve installation issues on bioconda.