Skip to content

Commit 3b98292

Browse files
authored
Merge pull request #139 from AlexandrovLab/container
Add Docker Container
2 parents 8bf4694 + 8321345 commit 3b98292

File tree

6 files changed

+139
-36
lines changed

6 files changed

+139
-36
lines changed

CHANGELOG.md

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
# Changelog
32

43
All notable changes to this project will be documented in this file.
@@ -7,6 +6,14 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
76

87
## [Unreleased]
98

9+
## [0.1.8] - 2024-08-20
10+
11+
### Added
12+
- Added a Dockerfile to the repository for containerization. Documentation on how to use the Dockerfile needs to be added to the README.
13+
14+
### Changed
15+
- Removed unnecessary imports from `setup.py` to clean up the codebase.
16+
1017
## [0.1.7] - 2024-06-21
1118

1219
### Added
@@ -18,5 +25,3 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
1825
### Changed
1926
- Improved input_type value check mechanism to use .lower() before checking against values 'vcf' or 'matrix'.
2027
- Updated dependency from PyPDF2 to pypdf to increase compatibility and resolve installation issues on bioconda.
21-
22-

Dockerfile

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Start with a base Ubuntu image and install Python
2+
FROM ubuntu:22.04
3+
4+
# Avoid prompts from apt
5+
ARG DEBIAN_FRONTEND=noninteractive
6+
7+
# Install Python and other dependencies, and apply updates
8+
RUN apt-get update && apt-get upgrade -y && \
9+
apt-get install -y python3-pip python3-dev git && \
10+
apt-get clean && rm -rf /var/lib/apt/lists/*
11+
12+
# Set the working directory in the container
13+
WORKDIR /usr/src/app
14+
15+
# Clone the specific branch of the repository
16+
RUN git clone https://github.com/AlexandrovLab/SigProfilerAssignment.git .
17+
18+
# Install the dependencies from the requirements.txt in the cloned repository
19+
RUN pip3 install --no-cache-dir -r requirements.txt
20+
21+
# Install the SigProfilerAssignment package from PyPI
22+
RUN pip3 install SigProfilerAssignment==0.1.8
23+
24+
# Create a non-root user named 'spm_user'
25+
RUN useradd -m -s /bin/bash spm_user
26+
27+
# Change the ownership of the /usr/src/app directory and its contents to the new non-root user
28+
RUN chown -R spm_user:spm_user /usr/src/app
29+
30+
# Switch to the non-root user for subsequent commands and when running the container
31+
USER spm_user

SigProfilerAssignment/decompose_subroutines.py

-8
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,12 @@
99
import numpy as np
1010
import os, sys
1111

12-
# from matplot,pdblib.backends.backend_pdf import PdfPages
1312
import pandas as pd
1413
import matplotlib.pyplot as plt
1514

1615
plt.switch_backend("agg")
1716
from matplotlib.backends.backend_pdf import PdfPages
1817

19-
# from sklearn import metrics
20-
# import time
21-
# import multiprocessing
22-
# from multiprocessing import current_process
23-
# from functools import partial
24-
# from numpy import linalg as LA
2518
import sigProfilerPlotting as plot
2619
from SigProfilerAssignment.DecompositionPlots import PlotDecomposition as sp
2720
from sigProfilerPlotting import plotActivity as plot_ac
@@ -30,7 +23,6 @@
3023
import pypdf
3124
import scipy
3225

33-
# import SigProfilerAssignment as sspro
3426
from pypdf import PdfMerger
3527
import SigProfilerAssignment as spa
3628
from SigProfilerAssignment import single_sample as ss

SigProfilerAssignment/decomposition.py

-3
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,10 @@
66
@author: mishugeb
77
"""
88

9-
# from SigProfilerExtractor import subroutines as sub
10-
119
from cmath import cos
1210
import datetime
1311
import platform
1412

15-
# from torch import sign
1613
from SigProfilerAssignment import decompose_subroutines as sub
1714
from SigProfilerAssignment.DecompositionPlots import PlotDecomposition as plot_decomp
1815
import SigProfilerAssignment

requirements.txt

+94-12
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,94 @@
1-
scipy
2-
numpy
3-
pandas
4-
SigProfilerMatrixGenerator
5-
sigProfilerPlotting
6-
pillow
7-
statsmodels
8-
scikit-learn
9-
psutil
10-
reportlab
11-
pypdf
12-
alive_progress
1+
#
2+
# This file is autogenerated by pip-compile with Python 3.11
3+
# by the following command:
4+
#
5+
# pip-compile setup.py
6+
#
7+
about-time==4.2.1
8+
# via alive-progress
9+
alive-progress==3.1.5
10+
# via SigProfilerAssignment (setup.py)
11+
chardet==5.2.0
12+
# via reportlab
13+
contourpy==1.2.1
14+
# via matplotlib
15+
cycler==0.12.1
16+
# via matplotlib
17+
fonttools==4.53.1
18+
# via matplotlib
19+
grapheme==0.6.0
20+
# via alive-progress
21+
joblib==1.4.2
22+
# via scikit-learn
23+
kiwisolver==1.4.5
24+
# via matplotlib
25+
matplotlib==3.9.2
26+
# via
27+
# sigprofilermatrixgenerator
28+
# sigprofilerplotting
29+
numpy==1.26.4
30+
# via
31+
# SigProfilerAssignment (setup.py)
32+
# contourpy
33+
# matplotlib
34+
# pandas
35+
# patsy
36+
# scikit-learn
37+
# scipy
38+
# sigprofilermatrixgenerator
39+
# statsmodels
40+
packaging==24.1
41+
# via
42+
# matplotlib
43+
# statsmodels
44+
pandas==1.5.3
45+
# via
46+
# SigProfilerAssignment (setup.py)
47+
# sigprofilermatrixgenerator
48+
# sigprofilerplotting
49+
# statsmodels
50+
patsy==0.5.6
51+
# via statsmodels
52+
pillow==10.4.0
53+
# via
54+
# matplotlib
55+
# reportlab
56+
# sigprofilerplotting
57+
pymupdf==1.24.9
58+
# via SigProfilerAssignment (setup.py)
59+
pymupdfb==1.24.9
60+
# via pymupdf
61+
pyparsing==3.1.2
62+
# via matplotlib
63+
pypdf==4.3.1
64+
# via SigProfilerAssignment (setup.py)
65+
python-dateutil==2.9.0.post0
66+
# via
67+
# matplotlib
68+
# pandas
69+
pytz==2024.1
70+
# via pandas
71+
reportlab==4.2.2
72+
# via SigProfilerAssignment (setup.py)
73+
scikit-learn==1.5.1
74+
# via sigprofilerplotting
75+
scipy==1.14.0
76+
# via
77+
# SigProfilerAssignment (setup.py)
78+
# scikit-learn
79+
# sigprofilermatrixgenerator
80+
# statsmodels
81+
sigprofilermatrixgenerator==1.2.28
82+
# via SigProfilerAssignment (setup.py)
83+
sigprofilerplotting==1.3.24
84+
# via
85+
# SigProfilerAssignment (setup.py)
86+
# sigprofilermatrixgenerator
87+
six==1.16.0
88+
# via
89+
# patsy
90+
# python-dateutil
91+
statsmodels==0.14.2
92+
# via sigprofilermatrixgenerator
93+
threadpoolctl==3.5.0
94+
# via scikit-learn

setup.py

+6-10
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.7"
9+
VERSION = "0.1.8"
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.7: Update CLI, add pytest, and update pypdf dependency.'
18+
Update = 'v0.1.8: Add Dockerfile and remove uncessary dependencies'
1919
2020
2121
"""
@@ -34,18 +34,14 @@ def write_version_py(filename="SigProfilerAssignment/version.py"):
3434

3535
requirements = [
3636
"scipy>=1.6.3",
37-
"numpy>=1.21.2",
37+
"numpy>=1.21.2,<2.0.0",
3838
"pandas>=1.2.4,<2.0.0",
39-
"SigProfilerMatrixGenerator>=1.2.17",
40-
"sigProfilerPlotting>=1.3.23",
41-
"statsmodels>=0.9.0",
42-
"scikit-learn>=0.24.2",
43-
"psutil>=5.6.1",
39+
"SigProfilerMatrixGenerator>=1.2.28",
40+
"sigProfilerPlotting>=1.3.24",
4441
"reportlab>=3.5.42",
4542
"pypdf>=3.1.0",
4643
"alive_progress>=2.4.1",
47-
"pdf2image>=1.16.0",
48-
"PyMuPDF>=1.21.0",
44+
"PyMuPDF>=1.21.0", # required for package "fitz"
4945
]
5046

5147
write_version_py()

0 commit comments

Comments
 (0)