SigProfilerExtractor 1.2.5__tar.gz → 1.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. sigprofilerextractor-1.4.0/.github/workflows/ci.yml +103 -0
  2. sigprofilerextractor-1.4.0/.github/workflows/create-version-tag.yml +53 -0
  3. sigprofilerextractor-1.4.0/.github/workflows/docs.yml +54 -0
  4. sigprofilerextractor-1.4.0/.github/workflows/release.yml +92 -0
  5. sigprofilerextractor-1.4.0/.github/workflows/static.yml +43 -0
  6. sigprofilerextractor-1.4.0/.gitignore +142 -0
  7. sigprofilerextractor-1.4.0/CHANGELOG.md +80 -0
  8. sigprofilerextractor-1.4.0/Dockerfile +26 -0
  9. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/LICENSE.txt +0 -0
  10. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/MANIFEST.in +1 -2
  11. {sigprofilerextractor-1.2.5/SigProfilerExtractor.egg-info → sigprofilerextractor-1.4.0}/PKG-INFO +16 -13
  12. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/README.md +12 -8
  13. sigprofilerextractor-1.4.0/SigProfilerExtractor/__init__.py +15 -0
  14. sigprofilerextractor-1.4.0/SigProfilerExtractor/_version.py +1 -0
  15. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/controllers/cli_controller.py +2 -2
  16. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/data/CNVInput/Battenberg_test.tsv +0 -0
  17. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/data/CSVInput/csv_example.csv +0 -0
  18. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/data/ReferenceFiles/CNV_features.tsv +0 -0
  19. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/data/ReferenceFiles/CN_classes_dictionary.txt +0 -0
  20. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/data/TextInput/Samples_CNV.txt +0 -0
  21. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/data/TextInput/Samples_DBS.txt +0 -0
  22. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/data/TextInput/Samples_ID.txt +0 -0
  23. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/data/TextInput/Samples_SBS.txt +0 -0
  24. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/data/TextInput/Samples_SV.txt +0 -0
  25. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/data/VCFInput/PD3851a.vcf +0 -0
  26. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/data/VCFInput/PD3890a.vcf +0 -0
  27. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/data/VCFInput/PD3904a.vcf +0 -0
  28. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/data/VCFInput/PD3905a.vcf +0 -0
  29. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/data/VCFInput/PD3945a.vcf +0 -0
  30. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/estimate_best_solution.py +0 -0
  31. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/nmf_cpu.py +13 -13
  32. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/nmf_gpu.py +13 -13
  33. sigprofilerextractor-1.4.0/SigProfilerExtractor/nndsvd.py +184 -0
  34. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/sigpro.py +5 -3
  35. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/sigprofilerextractor_cli.py +0 -0
  36. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/subroutines.py +37 -13
  37. sigprofilerextractor-1.4.0/SigProfilerExtractor/version.py +27 -0
  38. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0/SigProfilerExtractor.egg-info}/PKG-INFO +16 -13
  39. sigprofilerextractor-1.4.0/SigProfilerExtractor.egg-info/SOURCES.txt +88 -0
  40. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor.egg-info/dependency_links.txt +0 -0
  41. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor.egg-info/entry_points.txt +0 -0
  42. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor.egg-info/not-zip-safe +0 -0
  43. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor.egg-info/requires.txt +2 -3
  44. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor.egg-info/top_level.txt +0 -0
  45. sigprofilerextractor-1.4.0/docs/1. Installation.md +66 -0
  46. sigprofilerextractor-1.4.0/docs/2. Quick Start Example.md +81 -0
  47. sigprofilerextractor-1.4.0/docs/3. Using the Tool - Input.md +131 -0
  48. sigprofilerextractor-1.4.0/docs/4. Using the Tool - Output.md +94 -0
  49. sigprofilerextractor-1.4.0/docs/5. Output - All Solutions.md +93 -0
  50. sigprofilerextractor-1.4.0/docs/6. Output - Suggested Solution.md +48 -0
  51. sigprofilerextractor-1.4.0/docs/assets/images/osf/4hnaj.png +0 -0
  52. sigprofilerextractor-1.4.0/docs/assets/images/osf/5f8ep.png +0 -0
  53. sigprofilerextractor-1.4.0/docs/assets/images/osf/5tr9y.png +0 -0
  54. sigprofilerextractor-1.4.0/docs/assets/images/osf/5u7v8.png +0 -0
  55. sigprofilerextractor-1.4.0/docs/assets/images/osf/9uf4s.png +0 -0
  56. sigprofilerextractor-1.4.0/docs/assets/images/osf/a7gkf.png +0 -0
  57. sigprofilerextractor-1.4.0/docs/assets/images/osf/akef5.png +0 -0
  58. sigprofilerextractor-1.4.0/docs/assets/images/osf/c5hzf.png +0 -0
  59. sigprofilerextractor-1.4.0/docs/assets/images/osf/dahws.png +0 -0
  60. sigprofilerextractor-1.4.0/docs/assets/images/osf/h3tvx.png +0 -0
  61. sigprofilerextractor-1.4.0/docs/assets/images/osf/h796w.png +0 -0
  62. sigprofilerextractor-1.4.0/docs/assets/images/osf/kb4w2.png +0 -0
  63. sigprofilerextractor-1.4.0/docs/assets/images/osf/ku93g.png +0 -0
  64. sigprofilerextractor-1.4.0/docs/assets/images/osf/p4cfj.png +0 -0
  65. sigprofilerextractor-1.4.0/docs/assets/images/osf/r9wcm.png +0 -0
  66. sigprofilerextractor-1.4.0/docs/assets/images/osf/rz3ue.png +0 -0
  67. sigprofilerextractor-1.4.0/docs/assets/images/osf/whn8t.png +0 -0
  68. sigprofilerextractor-1.4.0/docs/assets/images/osf/xcm95.png +0 -0
  69. sigprofilerextractor-1.4.0/docs/assets/images/osf/xqzfh.png +0 -0
  70. sigprofilerextractor-1.4.0/docs/assets/images/osf/yhqnw.png +0 -0
  71. sigprofilerextractor-1.4.0/docs/assets/images/osf/z98fk.png +0 -0
  72. sigprofilerextractor-1.4.0/docs/assets/images/osf/zu6sm.png +0 -0
  73. sigprofilerextractor-1.4.0/docs/assets/stylesheets/extra.css +22 -0
  74. sigprofilerextractor-1.4.0/docs/home.md +23 -0
  75. sigprofilerextractor-1.4.0/docs/index.md +23 -0
  76. sigprofilerextractor-1.4.0/install_genome.py +12 -0
  77. sigprofilerextractor-1.4.0/mkdocs.yml +64 -0
  78. sigprofilerextractor-1.4.0/mkdocs_hooks.py +14 -0
  79. sigprofilerextractor-1.4.0/pyproject.toml +9 -0
  80. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/setup.cfg +0 -0
  81. sigprofilerextractor-1.4.0/setup.py +48 -0
  82. sigprofilerextractor-1.4.0/test.py +156 -0
  83. sigprofilerextractor-1.4.0/wikies/CLI-Usage.md +24 -0
  84. sigprofilerextractor-1.4.0/wikies/Citation.md +6 -0
  85. sigprofilerextractor-1.4.0/wikies/Home.md +11 -0
  86. sigprofilerextractor-1.4.0/wikies/Installation.md +25 -0
  87. sigprofilerextractor-1.4.0/wikies/Output.md +11 -0
  88. sigprofilerextractor-1.4.0/wikies/Python-API.md +34 -0
  89. sigprofilerextractor-1.4.0/wikies/_Sidebar.md +9 -0
  90. sigprofilerextractor-1.2.5/SigProfilerExtractor/__init__.py +0 -1
  91. sigprofilerextractor-1.2.5/SigProfilerExtractor/version.py +0 -7
  92. sigprofilerextractor-1.2.5/SigProfilerExtractor.egg-info/SOURCES.txt +0 -36
  93. sigprofilerextractor-1.2.5/pyproject.toml +0 -3
  94. sigprofilerextractor-1.2.5/setup.py +0 -114
  95. {sigprofilerextractor-1.2.5 → sigprofilerextractor-1.4.0}/SigProfilerExtractor/data/MatObjInput/21_breast_WGS_substitutions.mat +0 -0
@@ -0,0 +1,103 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+ branches:
9
+ - master
10
+
11
+ jobs:
12
+ test:
13
+ name: Test (${{ matrix.python-version }}, pandas ${{ matrix.pandas-version }})
14
+ runs-on: ubuntu-latest
15
+ continue-on-error: ${{ matrix.experimental }}
16
+ permissions:
17
+ contents: read
18
+ packages: write
19
+ strategy:
20
+ fail-fast: false
21
+ matrix:
22
+ include:
23
+ - python-version: '3.10'
24
+ pandas-version: '2.2.3'
25
+ experimental: false
26
+ - python-version: '3.12'
27
+ pandas-version: '2.2.3'
28
+ experimental: false
29
+ - python-version: '3.12'
30
+ pandas-version: '3.0.2'
31
+ experimental: false
32
+ - python-version: '3.14'
33
+ pandas-version: '3.0.2'
34
+ experimental: true
35
+
36
+ steps:
37
+ - uses: actions/checkout@v6
38
+
39
+ - name: Set up Python ${{ matrix.python-version }}
40
+ uses: actions/setup-python@v6
41
+ with:
42
+ python-version: ${{ matrix.python-version }}
43
+
44
+ - name: Upgrade pip, setuptools, and packaging
45
+ run: |
46
+ python -m pip install --upgrade pip setuptools packaging
47
+
48
+ - name: Pin pandas ${{ matrix.pandas-version }}
49
+ run: |
50
+ python -m pip install --upgrade "pandas==${{ matrix.pandas-version }}"
51
+
52
+ - name: Cache src directory
53
+ uses: actions/cache@v5
54
+ with:
55
+ path: ./src/
56
+ key: ${{ runner.os }}-src-grch37
57
+ restore-keys: |
58
+ ${{ runner.os }}-src-
59
+
60
+ - name: Download GRCh37.tar.gz if not present
61
+ run: |
62
+ if [ ! -f ./src/GRCh37.tar.gz ]; then
63
+ wget --connect-timeout=10 --tries=20 ftp://alexandrovlab-ftp.ucsd.edu/pub/tools/SigProfilerMatrixGenerator/GRCh37.tar.gz -P ./src/
64
+ fi
65
+
66
+ - name: Install package
67
+ run: |
68
+ pip install .
69
+
70
+ - name: Install genome
71
+ run: |
72
+ python install_genome.py ${{ github.workspace }}/src/
73
+
74
+ - name: Run tests
75
+ run: |
76
+ python3 test.py
77
+
78
+ - name: Build and push Docker image
79
+ if: github.ref == 'refs/heads/master' && github.event_name == 'push' && matrix.python-version == '3.12' && matrix.pandas-version == '3.0.2'
80
+ run: |
81
+ echo "Starting Docker deployment to GHCR for sigprofilersuite..."
82
+
83
+ python -m pip install --upgrade setuptools_scm
84
+ VERSION_TAG=$(python -m setuptools_scm)
85
+ VERSION_TAG=${VERSION_TAG//+/-}
86
+
87
+ # Get the repository name and convert it to lowercase
88
+ REPO_NAME=$(basename ${{ github.repository }} | tr '[:upper:]' '[:lower:]')
89
+ IMAGE_NAME="ghcr.io/sigprofilersuite/$REPO_NAME"
90
+
91
+ echo "Building version: $VERSION_TAG for image: $IMAGE_NAME"
92
+
93
+ echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u "${{ github.actor }}" --password-stdin
94
+
95
+ docker build \
96
+ --build-arg COMMIT_SHA=${{ github.sha }} \
97
+ -t $IMAGE_NAME:$VERSION_TAG \
98
+ -t $IMAGE_NAME:latest .
99
+
100
+ docker push $IMAGE_NAME:$VERSION_TAG
101
+ docker push $IMAGE_NAME:latest
102
+
103
+ echo "Docker deployment to GHCR successful"
@@ -0,0 +1,53 @@
1
+ name: Create version tag
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version:
7
+ description: "Version without leading v, for example x.y.z"
8
+ required: true
9
+ type: string
10
+ target_branch:
11
+ description: "Branch to tag"
12
+ required: true
13
+ default: "master"
14
+ type: string
15
+
16
+ permissions:
17
+ contents: write
18
+
19
+ jobs:
20
+ tag:
21
+ runs-on: ubuntu-latest
22
+ steps:
23
+ - name: Validate version
24
+ run: |
25
+ if ! [[ "${{ inputs.version }}" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
26
+ echo "Version must look like x.y.z"
27
+ exit 1
28
+ fi
29
+
30
+ - uses: actions/checkout@v6
31
+ with:
32
+ ref: ${{ inputs.target_branch }}
33
+ fetch-depth: 0
34
+
35
+ - name: Create and push tag
36
+ run: |
37
+ tag="v${{ inputs.version }}"
38
+
39
+ if git rev-parse "$tag" >/dev/null 2>&1; then
40
+ echo "Tag $tag already exists locally"
41
+ exit 1
42
+ fi
43
+
44
+ if git ls-remote --tags origin "$tag" | grep -q "$tag"; then
45
+ echo "Tag $tag already exists on origin"
46
+ exit 1
47
+ fi
48
+
49
+ git config user.name "github-actions[bot]"
50
+ git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
51
+
52
+ git tag -a "$tag" -m "SigProfilerExtractor $tag"
53
+ git push origin "$tag"
@@ -0,0 +1,54 @@
1
+ name: Docs
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ workflow_dispatch:
8
+
9
+ permissions:
10
+ contents: read
11
+ pages: write
12
+ id-token: write
13
+
14
+ concurrency:
15
+ group: github-pages
16
+ cancel-in-progress: true
17
+
18
+ jobs:
19
+ build:
20
+ runs-on: ubuntu-latest
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+
24
+ - uses: actions/setup-python@v5
25
+ with:
26
+ python-version: "3.x"
27
+
28
+ - name: Configure Pages
29
+ uses: actions/configure-pages@v5
30
+
31
+ - name: Install docs dependencies
32
+ run: |
33
+ python -m pip install --upgrade pip
34
+ python -m pip install mkdocs mkdocs-material pymdown-extensions
35
+
36
+ - name: Build site
37
+ run: |
38
+ mkdocs build --clean
39
+
40
+ - name: Upload Pages artifact
41
+ uses: actions/upload-pages-artifact@v3
42
+ with:
43
+ path: site
44
+
45
+ deploy:
46
+ runs-on: ubuntu-latest
47
+ needs: build
48
+ environment:
49
+ name: github-pages
50
+ url: ${{ steps.deployment.outputs.page_url }}
51
+ steps:
52
+ - id: deployment
53
+ uses: actions/deploy-pages@v4
54
+
@@ -0,0 +1,92 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags:
6
+ - "v*"
7
+ release:
8
+ types:
9
+ - published
10
+ workflow_dispatch:
11
+
12
+ jobs:
13
+ build:
14
+ name: Build distributions
15
+ runs-on: ubuntu-latest
16
+ permissions:
17
+ contents: read
18
+ steps:
19
+ - uses: actions/checkout@v6
20
+ with:
21
+ fetch-depth: 0
22
+
23
+ - name: Set up Python 3.12
24
+ uses: actions/setup-python@v6
25
+ with:
26
+ python-version: "3.12"
27
+
28
+ - name: Install build tooling
29
+ run: |
30
+ python -m pip install --upgrade pip build twine
31
+
32
+ - name: Build distributions
33
+ run: |
34
+ python -m build
35
+
36
+ - name: Check distributions
37
+ run: |
38
+ python -m twine check dist/*
39
+
40
+ - name: Verify package version
41
+ run: |
42
+ python -m pip install dist/*.whl
43
+ python -c "import SigProfilerExtractor; print(SigProfilerExtractor.__version__)"
44
+
45
+ - name: Upload distributions
46
+ uses: actions/upload-artifact@v7
47
+ with:
48
+ name: python-package-distributions
49
+ path: dist/
50
+ if-no-files-found: error
51
+
52
+ publish-testpypi:
53
+ name: Publish to TestPyPI
54
+ needs: build
55
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
56
+ runs-on: ubuntu-latest
57
+ environment:
58
+ name: testpypi
59
+ url: https://test.pypi.org/p/SigProfilerExtractor
60
+ permissions:
61
+ id-token: write
62
+ steps:
63
+ - name: Download distributions
64
+ uses: actions/download-artifact@v5
65
+ with:
66
+ name: python-package-distributions
67
+ path: dist/
68
+
69
+ - name: Publish package distributions to TestPyPI
70
+ uses: pypa/gh-action-pypi-publish@release/v1
71
+ with:
72
+ repository-url: https://test.pypi.org/legacy/
73
+
74
+ publish-pypi:
75
+ name: Publish to PyPI
76
+ needs: build
77
+ if: github.event_name == 'release' && github.event.action == 'published'
78
+ runs-on: ubuntu-latest
79
+ environment:
80
+ name: pypi
81
+ url: https://pypi.org/p/SigProfilerExtractor
82
+ permissions:
83
+ id-token: write
84
+ steps:
85
+ - name: Download distributions
86
+ uses: actions/download-artifact@v5
87
+ with:
88
+ name: python-package-distributions
89
+ path: dist/
90
+
91
+ - name: Publish package distributions to PyPI
92
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,43 @@
1
+ # Simple workflow for deploying static content to GitHub Pages
2
+ name: Deploy static content to Pages
3
+
4
+ on:
5
+ # Runs on pushes targeting the default branch
6
+ push:
7
+ branches: ["master"]
8
+
9
+ # Allows you to run this workflow manually from the Actions tab
10
+ workflow_dispatch:
11
+
12
+ # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
13
+ permissions:
14
+ contents: read
15
+ pages: write
16
+ id-token: write
17
+
18
+ # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
19
+ # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
20
+ concurrency:
21
+ group: "pages"
22
+ cancel-in-progress: false
23
+
24
+ jobs:
25
+ # Single deploy job since we're just deploying
26
+ deploy:
27
+ environment:
28
+ name: github-pages
29
+ url: ${{ steps.deployment.outputs.page_url }}
30
+ runs-on: ubuntu-latest
31
+ steps:
32
+ - name: Checkout
33
+ uses: actions/checkout@v4
34
+ - name: Setup Pages
35
+ uses: actions/configure-pages@v5
36
+ - name: Upload artifact
37
+ uses: actions/upload-pages-artifact@v3
38
+ with:
39
+ # Upload entire repository
40
+ path: '.'
41
+ - name: Deploy to GitHub Pages
42
+ id: deployment
43
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,142 @@
1
+ .DS_Store
2
+ # Byte-compiled / optimized / DLL files
3
+ __pycache__/
4
+ *.py[cod]
5
+ *$py.class
6
+
7
+ # C extensions
8
+ *.so
9
+
10
+ # Distribution / packaging
11
+ .Python
12
+ build/
13
+ develop-eggs/
14
+ dist/
15
+ downloads/
16
+ eggs/
17
+ .eggs/
18
+ lib/
19
+ lib64/
20
+ parts/
21
+ sdist/
22
+ var/
23
+ wheels/
24
+ pip-wheel-metadata/
25
+ share/python-wheels/
26
+ *.egg-info/
27
+ .installed.cfg
28
+ *.egg
29
+ MANIFEST
30
+ SigProfilerExtractor/_version.py
31
+
32
+ # PyInstaller
33
+ # Usually these files are written by a python script from a template
34
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
35
+ *.manifest
36
+ *.spec
37
+
38
+ # Installer logs
39
+ pip-log.txt
40
+ pip-delete-this-directory.txt
41
+
42
+ # Unit test / coverage reports
43
+ htmlcov/
44
+ .tox/
45
+ .nox/
46
+ .coverage
47
+ .coverage.*
48
+ .cache
49
+ nosetests.xml
50
+ coverage.xml
51
+ *.cover
52
+ *.py,cover
53
+ .hypothesis/
54
+ .pytest_cache/
55
+
56
+ # Translations
57
+ *.mo
58
+ *.pot
59
+
60
+ # Django stuff:
61
+ *.log
62
+ local_settings.py
63
+ db.sqlite3
64
+ db.sqlite3-journal
65
+
66
+ # Flask stuff:
67
+ instance/
68
+ .webassets-cache
69
+
70
+ # Scrapy stuff:
71
+ .scrapy
72
+
73
+ # Sphinx documentation
74
+ docs/_build/
75
+
76
+ # PyBuilder
77
+ target/
78
+
79
+ # Jupyter Notebook
80
+ .ipynb_checkpoints
81
+
82
+ # IPython
83
+ profile_default/
84
+ ipython_config.py
85
+
86
+ # pyenv
87
+ .python-version
88
+
89
+ # pipenv
90
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
91
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
92
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
93
+ # install all needed dependencies.
94
+ #Pipfile.lock
95
+
96
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
97
+ __pypackages__/
98
+
99
+ # Celery stuff
100
+ celerybeat-schedule
101
+ celerybeat.pid
102
+
103
+ # SageMath parsed files
104
+ *.sage.py
105
+
106
+ # Environments
107
+ .env
108
+ .venv
109
+ env/
110
+ venv/
111
+ ENV/
112
+ env.bak/
113
+ venv.bak/
114
+
115
+ # Spyder project settings
116
+ .spyderproject
117
+ .spyproject
118
+
119
+ # Rope project settings
120
+ .ropeproject
121
+
122
+ # mkdocs documentation
123
+ /site
124
+
125
+ # mypy
126
+ .mypy_cache/
127
+ .dmypy.json
128
+ dmypy.json
129
+
130
+ # Pyre type checker
131
+ .pyre/
132
+
133
+ # test script output
134
+ test_csv_output/
135
+ test_matobj_output/
136
+ test_segCNV_output/
137
+ test_text_output/
138
+ test_vcf_output/
139
+ test_matrix_*_output/
140
+ SigProfilerExtractor/data/VCFInput/logs/
141
+ SigProfilerExtractor/data/VCFInput/input/
142
+ SigProfilerExtractor/data/VCFInput/output/
@@ -0,0 +1,80 @@
1
+
2
+ # Changelog
3
+
4
+ All notable changes to this project will be documented in this file.
5
+
6
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [1.2.7] - 2026-01-22
11
+
12
+ ### Fixed
13
+ - Fixed NumPy 2.0 compatibility issue by removing the `nimfa` dependency, which was incompatible with NumPy 2.0 due to use of deprecated `np.mat()` function.
14
+ - Fixed pandas 3.12 compatibility issues:
15
+ - Updated `to_csv()` calls to use `sep` as keyword argument instead of positional argument
16
+ - Fixed `set_index()` calls to work with pandas 3.12's stricter type checking by converting StringArray to list
17
+ - Fixed `iloc` assignment for string conversion operations
18
+ - Fixed Series indexing to use `.iloc[0]` for positional access instead of `[0]` for label-based access
19
+ - Fixed compatibility issues in SigProfilerAssignment and SigProfilerPlotting packages for pandas 3.12
20
+
21
+ ### Changed
22
+ - Removed `nimfa` dependency and implemented NNDSVD initialization directly in the codebase.
23
+ - Updated `sigProfilerPlotting` dependency to >=1.4.3 for pandas 3.12 compatibility.
24
+ - Removed TMB debug file output.
25
+ - Migrated CI/CD pipeline from Travis CI to GitHub Actions for improved reliability and modern workflow management.
26
+
27
+ ### Added
28
+ - Added `SigProfilerExtractor/nndsvd.py` with standalone NNDSVD implementation supporting all variants (nndsvd, nndsvda, nndsvdar, nndsvd_min).
29
+
30
+ ## [1.2.6] - 2026-01-06
31
+
32
+ ### Changed
33
+ - Updated default COSMIC version from 3.4 to 3.5. Added support for COSMIC v3.5 signatures in the `cosmic_version` parameter.
34
+ - Updated SigProfilerAssignment dependency requirement from >=1.0.1 to >=1.1.0 to support COSMIC v3.5 signatures.
35
+
36
+ ## [1.2.5] - 2025-10-28
37
+
38
+ ### Added
39
+ - Implemented a CI/CD pipeline with Travis CI to automate the building and publishing of Docker images to Docker Hub.
40
+ - Added a Dockerfile to the repository for containerization. Documentation on how to use the Dockerfile needs to be added to the README.
41
+
42
+ ## [1.2.4] - 2025-10-20
43
+
44
+ ### Added
45
+ - Added the `assignment_cpu` parameter to independently control the number of CPU cores used for the signature assignment step. This change enables full support for the parallel processing enhancements in **SigProfilerAssignment v1.0.0**, allowing for significant performance improvements and more granular resource control.
46
+
47
+ ## [1.2.3] - 2025-09-19
48
+
49
+ ### Added
50
+ - Added support for rn7 and mm39 genomes in SigProfilerExtractor.
51
+
52
+ ## [1.2.2] - 2025-08-11
53
+
54
+ ### Added
55
+ - Added mutation count and stability to 4608 plots in All_Solutions
56
+ - Add a stop parameter to the CLI to stop after de novo extraction.
57
+
58
+ ## [1.2.1] - 2025-05-14
59
+
60
+ ### Fixed
61
+ - Fixed an issue where the CLI was returning a non-zero exit code when the `--help` flag was passed.
62
+
63
+ ### Added
64
+ - Added `pyproject.toml` for modern Python packaging support.
65
+
66
+ ## [1.2.0] - 2025-02-11
67
+
68
+ ### Changed
69
+ - Updated dependencies: Now requires **Pandas >= 2.0.0**, **NumPy >= 2.0.0**, and **Python >= 3.9**.
70
+ - Dropped support for **Python 3.8**
71
+ - **Intel-based MacBooks are no longer supported** due to upstream changes in **PyTorch**, which has dropped support for macOS x86_64. Users with Intel-based MacBooks will need to migrate to Apple Silicon (M1/M2) or use a Linux-based development environment.
72
+
73
+ ## [1.1.25] - 2024-12-09
74
+
75
+ ### Added
76
+ - Introduced a Command-Line Interface (CLI) for SigProfilerExtractor, enabling users to interact with the tool via terminal commands.
77
+
78
+ ### Updated
79
+ - Improved the formatting of the parameter table for sigProfilerExtractor function for better readability and consistency.
80
+ - The CI/CD badge link has been fixed.
@@ -0,0 +1,26 @@
1
+ # CUDA-enabled base image for GPU support
2
+ FROM nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu22.04
3
+
4
+ ARG DEBIAN_FRONTEND=noninteractive
5
+ ARG COMMIT_SHA=master
6
+
7
+ # Install Python + minimal deps
8
+ RUN apt-get update && apt-get install -y \
9
+ python3-pip python3-dev git && \
10
+ apt-get clean && rm -rf /var/lib/apt/lists/*
11
+
12
+ WORKDIR /usr/src/app
13
+
14
+ # Install GPU-enabled PyTorch wheels
15
+ RUN pip3 install --no-cache-dir \
16
+ torch torchvision torchaudio \
17
+ --extra-index-url https://download.pytorch.org/whl/cu118
18
+
19
+ # Install SigProfilerExtractor from specific commit
20
+ RUN pip3 install --no-cache-dir \
21
+ 'git+https://github.com/SigProfilerSuite/SigProfilerExtractor.git@'${COMMIT_SHA}
22
+
23
+ # Create a non-root user
24
+ RUN useradd -m -s /bin/bash spm_user
25
+ RUN chown -R spm_user:spm_user /usr/src/app
26
+ USER spm_user
@@ -4,5 +4,4 @@ include SigProfilerExtractor/data/CNVInput/*
4
4
  include SigProfilerExtractor/data/CSVInput/*
5
5
  include SigProfilerExtractor/data/MatObjInput/*
6
6
  include SigProfilerExtractor/data/ReferenceFiles/*
7
- include SigProfilerExtractor/controllers/*
8
-
7
+ include SigProfilerExtractor/controllers/*