Skip to content

Commit 71aafad

Browse files
authored
Merge pull request #157 from AlexandrovLab/pandas2-up-v2
v0.2.0: Require Pandas and Numpy >= 2.0.0 and Python >= 3.9
2 parents 8526286 + 9bee932 commit 71aafad

File tree

5 files changed

+28
-21
lines changed

5 files changed

+28
-21
lines changed

.travis.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
dist: xenial
1+
dist: focal
22
language: python
33

44
python:
5-
- '3.8'
5+
- '3.12'
66

77
cache:
88
directories:

CHANGELOG.md

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

77
## [Unreleased]
88

9+
## [0.2.0] - 2025-02-11
10+
11+
### Changed
12+
- Updated dependencies: Now requires **Pandas >= 2.0.0**, **NumPy >= 2.0.0**, and **Python >= 3.9**.
13+
- Dropped support for **Python 3.8**
14+
915
## [0.1.9] - 2024-11-12
1016

1117
### Changed

SigProfilerAssignment/DecompositionPlots/PlotDecomposition.py

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -279,18 +279,18 @@ def calculate_similarities(denovo, denovo_name, est_denovo):
279279

280280
# If matrix is 1536 context, then collapse it to 96 format
281281
if denovo.shape[0] == 1536:
282-
index = denovo.iloc[:, 0]
283-
denovo_tmp = pd.DataFrame(denovo, index=index)
284-
denovo_tmp = denovo.groupby(denovo_tmp.index.str[1:8]).sum()
285-
denovo = pd.DataFrame(denovo_tmp)
286-
denovo = denovo.reset_index()
287-
elif denovo.shape[0] == 288:
288-
index = denovo.iloc[:, 0]
289-
denovo_tmp = pd.DataFrame(denovo, index=index)
290-
denovo_tmp = denovo.groupby(denovo_tmp.index.str[2:9]).sum()
291-
denovo = pd.DataFrame(denovo_tmp)
292-
denovo = denovo.reset_index()
282+
denovo["IndexKey"] = denovo.iloc[:, 0].astype(str)
283+
denovo["GroupKey"] = denovo["IndexKey"].str[1:8]
284+
denovo_grouped = denovo.groupby("GroupKey", as_index=False).sum(numeric_only=True)
285+
denovo_grouped.rename(columns={"GroupKey": "MutationType"}, inplace=True)
286+
denovo = denovo_grouped.reset_index(drop=True)
293287

288+
elif denovo.shape[0] == 288:
289+
denovo["MutationType"] = denovo["MutationType"].astype(str) # Ensure strings
290+
denovo["GroupKey"] = denovo["MutationType"].str[2:9] # Extract substring for grouping
291+
denovo_grouped = denovo.groupby("GroupKey", as_index=False).sum(numeric_only=True)
292+
denovo_grouped.rename(columns={"GroupKey": "MutationType"}, inplace=True)
293+
denovo = denovo_grouped.reset_index(drop=True) # updated pandas 2.0.0
294294
sample_names = [denovo_name]
295295

296296
if sample_names is False:

SigProfilerAssignment/decomposition.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ def generate_sample_reconstruction(
103103
basis_names = (
104104
subset[subset["Samples"].str.contains(sample_name)].columns[1:].tolist()
105105
)
106-
recon_tmb = subset.sum(axis=1)
106+
recon_tmb = subset.select_dtypes(include=['number']).sum(axis=1)
107107
weights = []
108108
for i in range(len(basis_names)):
109109
weights.append(

setup.py

Lines changed: 8 additions & 7 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.1.9"
9+
VERSION = "0.2.0"
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.1.9: Replace PdfMerger with PdfReader and PdfWriter for pypdf 5.0.0'
18+
Update = 'v0.2.0: Require Pandas and Numpy >= 2.0.0 and Python >= 3.9'
1919
2020
2121
"""
@@ -33,11 +33,11 @@ def write_version_py(filename="SigProfilerAssignment/version.py"):
3333
long_description = f.read()
3434

3535
requirements = [
36-
"scipy>=1.6.3",
37-
"numpy>=1.21.2,<2.0.0",
38-
"pandas>=1.2.4,<2.0.0",
39-
"SigProfilerMatrixGenerator>=1.2.28",
40-
"sigProfilerPlotting>=1.3.24",
36+
"scipy>=1.13",
37+
"numpy>=2.0.0",
38+
"pandas>=2.0.0",
39+
"SigProfilerMatrixGenerator>=1.3.0",
40+
"sigProfilerPlotting>=1.4.0",
4141
"reportlab>=3.5.42",
4242
"pypdf>=5.0.0",
4343
"alive_progress>=2.4.1",
@@ -57,6 +57,7 @@ def write_version_py(filename="SigProfilerAssignment/version.py"):
5757
license="UCSD",
5858
packages=["SigProfilerAssignment"],
5959
install_requires=requirements,
60+
python_requires=">=3.9",
6061
extras_require={
6162
"tests": [
6263
"pytest",

0 commit comments

Comments
 (0)