Skip to content

Commit 0cc72cd

Browse files
authored
Merge pull request #180 from AlexandrovLab/sigs-support
v0.2.6: Add rn7/mm39 genome support and bump pypdf for security
2 parents 83e70aa + d2d2dc5 commit 0cc72cd

File tree

5 files changed

+44
-43
lines changed

5 files changed

+44
-43
lines changed

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66

77
## [Unreleased]
88

9+
## [0.2.6] - 2025-09-17
10+
11+
### Added
12+
- Support for assigning mutational signatures using the `rn7` and `mm39` genome builds.
13+
14+
### Security
15+
- Updated dependency requirement to `pypdf>=6.0.0` (previous versions contained a security vulnerability).
16+
917
## [0.2.5] - 2025-08-07
1018

1119
### Added

SigProfilerAssignment/decompose_subroutines.py

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,19 +40,13 @@ def getProcessAvg(
4040
):
4141
paths = spa.__path__[0]
4242

43-
if (
44-
genome_build == "GRCh37"
45-
or genome_build == "GRCh38"
46-
or genome_build == "mm9"
47-
or genome_build == "mm10"
48-
or genome_build == "rn6"
49-
):
43+
if genome_build in ["GRCh37", "GRCh38", "mm9", "mm10", "mm39", "rn6", "rn7"]:
5044
genome_build = genome_build
5145
else:
5246
print(
5347
"The selected genome build is "
5448
+ str(genome_build)
55-
+ ". COSMIC signatures are available only for GRCh37/38, mm9/10 and rn6 genomes. So, the genome build is reset to GRCh37."
49+
+ ". COSMIC signatures are available only for GRCh37/38, mm9/10/39 and rn6/7 genomes. So, the genome build is reset to GRCh37."
5650
)
5751
genome_build = "GRCh37"
5852
if samples.shape[0] == 96:

SigProfilerAssignment/decomposition.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ def spa_analyze(
271271
activities: A string. Path to a tab delimilted file that contains the activity table where the rows are sample IDs and colunms are signature IDs.
272272
samples: A string. Path to a tab delimilted file that contains the activity table where the rows are mutation types and colunms are sample IDs.
273273
output: A string. Path to the output folder.
274-
genome_build = A string. The reference genome build. List of supported genomes: "GRCh37", "GRCh38", "mm9", "mm10" and "rn6". The default value is "GRCh37". If the selected genome is not in the supported list, the default genome will be used.
274+
genome_build = A string. The reference genome build. List of supported genomes: "GRCh37", "GRCh38", "mm9", "mm10", "mm39", "rn6", and "rn7". The default value is "GRCh37". If the selected genome is not in the supported list, the default genome will be used.
275275
verbose = Boolean. Prints statements. Default value is False.
276276
exome = Boolean. Defines if the exome renormalized signatures will be used. The default value is False.
277277
sample_reconstruction_plots (str): Select output format for sample reconstruction plots. Valid options are {'pdf', 'png', 'both', 'none'}. Default is 'none'.

requirements.txt

Lines changed: 30 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,27 @@
66
#
77
about-time==4.2.1
88
# via alive-progress
9-
alive-progress==3.1.5
9+
alive-progress==3.3.0
1010
# via SigProfilerAssignment (setup.py)
11-
chardet==5.2.0
11+
charset-normalizer==3.4.3
1212
# via reportlab
13-
contourpy==1.2.1
13+
contourpy==1.3.3
1414
# via matplotlib
1515
cycler==0.12.1
1616
# via matplotlib
17-
fonttools==4.53.1
17+
fonttools==4.60.0
1818
# via matplotlib
19-
grapheme==0.6.0
19+
graphemeu==0.7.2
2020
# via alive-progress
21-
joblib==1.4.2
21+
joblib==1.5.2
2222
# via scikit-learn
23-
kiwisolver==1.4.5
23+
kiwisolver==1.4.9
2424
# via matplotlib
25-
matplotlib==3.9.2
25+
matplotlib==3.10.6
2626
# via
2727
# sigprofilermatrixgenerator
2828
# sigprofilerplotting
29-
numpy==1.26.4
29+
numpy==2.3.3
3030
# via
3131
# SigProfilerAssignment (setup.py)
3232
# contourpy
@@ -37,58 +37,57 @@ numpy==1.26.4
3737
# scipy
3838
# sigprofilermatrixgenerator
3939
# statsmodels
40-
packaging==24.1
40+
packaging==25.0
4141
# via
4242
# matplotlib
4343
# statsmodels
44-
pandas==1.5.3
44+
pandas==2.3.2
4545
# via
4646
# SigProfilerAssignment (setup.py)
4747
# sigprofilermatrixgenerator
4848
# sigprofilerplotting
4949
# statsmodels
50-
patsy==0.5.6
50+
patsy==1.0.1
5151
# via statsmodels
52-
pillow==10.4.0
52+
pdf2image==1.17.0
53+
# via SigProfilerAssignment (setup.py)
54+
pillow==11.3.0
5355
# via
5456
# matplotlib
57+
# pdf2image
5558
# reportlab
5659
# sigprofilerplotting
57-
pymupdf==1.24.9
58-
# via SigProfilerAssignment (setup.py)
59-
pymupdfb==1.24.9
60-
# via pymupdf
61-
pyparsing==3.1.2
60+
pyparsing==3.2.4
6261
# via matplotlib
63-
pypdf==4.3.1
62+
pypdf==6.0.0
6463
# via SigProfilerAssignment (setup.py)
6564
python-dateutil==2.9.0.post0
6665
# via
6766
# matplotlib
6867
# pandas
69-
pytz==2024.1
68+
pytz==2025.2
7069
# via pandas
71-
reportlab==4.2.2
70+
reportlab==4.4.3
7271
# via SigProfilerAssignment (setup.py)
73-
scikit-learn==1.5.1
72+
scikit-learn==1.7.2
7473
# via sigprofilerplotting
75-
scipy==1.14.0
74+
scipy==1.16.2
7675
# via
7776
# SigProfilerAssignment (setup.py)
7877
# scikit-learn
7978
# sigprofilermatrixgenerator
8079
# statsmodels
81-
sigprofilermatrixgenerator==1.2.28
80+
sigprofilermatrixgenerator==1.3.5
8281
# via SigProfilerAssignment (setup.py)
83-
sigprofilerplotting==1.3.24
82+
sigprofilerplotting==1.4.1
8483
# via
8584
# SigProfilerAssignment (setup.py)
8685
# sigprofilermatrixgenerator
87-
six==1.16.0
88-
# via
89-
# patsy
90-
# python-dateutil
91-
statsmodels==0.14.2
86+
six==1.17.0
87+
# via python-dateutil
88+
statsmodels==0.14.5
9289
# via sigprofilermatrixgenerator
93-
threadpoolctl==3.5.0
90+
threadpoolctl==3.6.0
9491
# via scikit-learn
92+
tzdata==2025.2
93+
# via pandas

setup.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
if os.path.exists("dist"):
77
shutil.rmtree("dist")
88

9-
VERSION = "0.2.5"
9+
VERSION = "0.2.6"
1010

1111

1212
def write_version_py(filename="SigProfilerAssignment/version.py"):
@@ -15,7 +15,7 @@ def write_version_py(filename="SigProfilerAssignment/version.py"):
1515
# THIS FILE IS GENERATED FROM SigProfilerAssignment SETUP.PY
1616
short_version = '%(version)s'
1717
version = '%(version)s'
18-
Update = 'v0.2.5: Support for generating decomposition plots for custom signature sets.'
18+
Update = 'v0.2.6: Support for assigning signatures for rn7 and mm39 genomes.'
1919
2020
"""
2121
fh = open(filename, "w")
@@ -38,7 +38,7 @@ def write_version_py(filename="SigProfilerAssignment/version.py"):
3838
"SigProfilerMatrixGenerator>=1.3.0",
3939
"sigProfilerPlotting>=1.4.0",
4040
"reportlab>=3.5.42",
41-
"pypdf>=5.0.0",
41+
"pypdf>=6.0.0",
4242
"alive_progress>=2.4.1",
4343
"pdf2image>=1.16.0", # replacing PyMuPDF
4444
# Note: 'poppler' is required as a system dependency for pdf2image

0 commit comments

Comments
 (0)