vdjmatch 0.0.1__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.
- vdjmatch-0.0.1/.github/workflows/docs.yml +47 -0
- vdjmatch-0.0.1/.github/workflows/publish.yml +86 -0
- vdjmatch-0.0.1/.github/workflows/tests.yml +31 -0
- vdjmatch-0.0.1/.gitignore +22 -0
- vdjmatch-0.0.1/LICENSE +674 -0
- vdjmatch-0.0.1/PKG-INFO +66 -0
- vdjmatch-0.0.1/README.md +36 -0
- vdjmatch-0.0.1/docs/conf.py +29 -0
- vdjmatch-0.0.1/docs/index.rst +68 -0
- vdjmatch-0.0.1/plan.md +239 -0
- vdjmatch-0.0.1/pyproject.toml +43 -0
- vdjmatch-0.0.1/roadmap-iter-1.md +76 -0
- vdjmatch-0.0.1/src/vdjmatch/__init__.py +8 -0
- vdjmatch-0.0.1/src/vdjmatch/aggregate/__init__.py +4 -0
- vdjmatch-0.0.1/src/vdjmatch/aggregate/enrichment.py +40 -0
- vdjmatch-0.0.1/src/vdjmatch/cli/__init__.py +0 -0
- vdjmatch-0.0.1/src/vdjmatch/cli/__main__.py +79 -0
- vdjmatch-0.0.1/src/vdjmatch/cluster/__init__.py +3 -0
- vdjmatch-0.0.1/src/vdjmatch/cluster/overlap.py +36 -0
- vdjmatch-0.0.1/src/vdjmatch/db/__init__.py +5 -0
- vdjmatch-0.0.1/src/vdjmatch/db/cache.py +16 -0
- vdjmatch-0.0.1/src/vdjmatch/db/schema.py +50 -0
- vdjmatch-0.0.1/src/vdjmatch/db/vdjdb.py +108 -0
- vdjmatch-0.0.1/src/vdjmatch/evalue/__init__.py +5 -0
- vdjmatch-0.0.1/src/vdjmatch/evalue/control.py +25 -0
- vdjmatch-0.0.1/src/vdjmatch/evalue/single.py +32 -0
- vdjmatch-0.0.1/src/vdjmatch/io/__init__.py +5 -0
- vdjmatch-0.0.1/src/vdjmatch/io/airr.py +70 -0
- vdjmatch-0.0.1/src/vdjmatch/io/columns.py +61 -0
- vdjmatch-0.0.1/src/vdjmatch/match/__init__.py +7 -0
- vdjmatch-0.0.1/src/vdjmatch/match/cigar.py +35 -0
- vdjmatch-0.0.1/src/vdjmatch/match/engine.py +108 -0
- vdjmatch-0.0.1/src/vdjmatch/match/scope.py +44 -0
- vdjmatch-0.0.1/src/vdjmatch/match/scoring.py +51 -0
- vdjmatch-0.0.1/src/vdjmatch/resources/VERSIONS.md +15 -0
- vdjmatch-0.0.1/src/vdjmatch/resources/score_coef.txt +5 -0
- vdjmatch-0.0.1/src/vdjmatch/resources/segm_score.txt +24065 -0
- vdjmatch-0.0.1/src/vdjmatch/resources/vdjam.txt +401 -0
- vdjmatch-0.0.1/src/vdjmatch/runner/__init__.py +3 -0
- vdjmatch-0.0.1/src/vdjmatch/runner/multisample.py +48 -0
- vdjmatch-0.0.1/tests/unit/test_core.py +90 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
name: docs
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [dev, master]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: read
|
|
10
|
+
pages: write
|
|
11
|
+
id-token: write
|
|
12
|
+
|
|
13
|
+
# Per-ref so a dev push never cancels an in-flight master Pages deploy.
|
|
14
|
+
concurrency:
|
|
15
|
+
group: pages-${{ github.ref }}
|
|
16
|
+
cancel-in-progress: true
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
build:
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
steps:
|
|
22
|
+
- uses: actions/checkout@v4
|
|
23
|
+
- uses: actions/setup-python@v5
|
|
24
|
+
with:
|
|
25
|
+
python-version: "3.12"
|
|
26
|
+
- name: Install docs toolchain
|
|
27
|
+
# autodoc imports vdjmatch with heavy deps (seqtree, polars) mocked in docs/conf.py,
|
|
28
|
+
# so the native seqtree toolchain is not needed to build docs.
|
|
29
|
+
run: pip install sphinx pydata-sphinx-theme nbsphinx ipython
|
|
30
|
+
- name: Build HTML (fail on warnings)
|
|
31
|
+
run: sphinx-build -W --keep-going -b html docs docs/_build/html
|
|
32
|
+
- uses: actions/upload-pages-artifact@v3
|
|
33
|
+
with:
|
|
34
|
+
path: docs/_build/html
|
|
35
|
+
|
|
36
|
+
deploy:
|
|
37
|
+
needs: build
|
|
38
|
+
# The github-pages environment only allows deploys from the default branch; on dev we
|
|
39
|
+
# validate the build (above) but skip deployment so the workflow stays green.
|
|
40
|
+
if: github.ref == 'refs/heads/master'
|
|
41
|
+
runs-on: ubuntu-latest
|
|
42
|
+
environment:
|
|
43
|
+
name: github-pages
|
|
44
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
45
|
+
steps:
|
|
46
|
+
- id: deployment
|
|
47
|
+
uses: actions/deploy-pages@v4
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
name: Publish To PyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
release:
|
|
5
|
+
types:
|
|
6
|
+
- published
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
build:
|
|
14
|
+
# vdjmatch is pure Python (hatchling) -> one sdist + one universal wheel via `build`.
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
steps:
|
|
17
|
+
- uses: actions/checkout@v4
|
|
18
|
+
- uses: actions/setup-python@v5
|
|
19
|
+
with:
|
|
20
|
+
python-version: "3.12"
|
|
21
|
+
- name: Install build tooling
|
|
22
|
+
run: python -m pip install --upgrade pip build twine
|
|
23
|
+
- name: Build sdist + wheel
|
|
24
|
+
run: python -m build
|
|
25
|
+
- name: Check distributions
|
|
26
|
+
run: python -m twine check dist/*
|
|
27
|
+
- name: Upload distributions
|
|
28
|
+
uses: actions/upload-artifact@v4
|
|
29
|
+
with:
|
|
30
|
+
name: python-dist
|
|
31
|
+
path: dist/
|
|
32
|
+
|
|
33
|
+
smoke:
|
|
34
|
+
name: Smoke-test wheel (py${{ matrix.python-version }})
|
|
35
|
+
needs: build
|
|
36
|
+
runs-on: ubuntu-latest
|
|
37
|
+
strategy:
|
|
38
|
+
fail-fast: false
|
|
39
|
+
matrix:
|
|
40
|
+
python-version: ["3.10", "3.12"]
|
|
41
|
+
steps:
|
|
42
|
+
- uses: actions/setup-python@v5
|
|
43
|
+
with:
|
|
44
|
+
python-version: ${{ matrix.python-version }}
|
|
45
|
+
- uses: actions/download-artifact@v4
|
|
46
|
+
with:
|
|
47
|
+
name: python-dist
|
|
48
|
+
path: dist/
|
|
49
|
+
- name: Install built wheel (deps incl. seqtree resolved from PyPI)
|
|
50
|
+
run: |
|
|
51
|
+
pip install --upgrade pip
|
|
52
|
+
pip install dist/*.whl
|
|
53
|
+
- name: Import vdjmatch
|
|
54
|
+
run: python -c "import vdjmatch; print('[OK] vdjmatch', vdjmatch.__version__)"
|
|
55
|
+
|
|
56
|
+
publish:
|
|
57
|
+
name: Publish To PyPI
|
|
58
|
+
needs: [build, smoke]
|
|
59
|
+
runs-on: ubuntu-latest
|
|
60
|
+
environment: pypi
|
|
61
|
+
permissions:
|
|
62
|
+
contents: read
|
|
63
|
+
id-token: write # required for OIDC trusted publishing
|
|
64
|
+
steps:
|
|
65
|
+
- uses: actions/checkout@v4
|
|
66
|
+
- uses: actions/download-artifact@v4
|
|
67
|
+
with:
|
|
68
|
+
name: python-dist
|
|
69
|
+
path: dist/
|
|
70
|
+
- name: Validate package version matches release tag
|
|
71
|
+
if: github.event_name == 'release'
|
|
72
|
+
run: |
|
|
73
|
+
python - <<'PY'
|
|
74
|
+
from pathlib import Path
|
|
75
|
+
import tomllib
|
|
76
|
+
version = tomllib.loads(Path("pyproject.toml").read_text())["project"]["version"]
|
|
77
|
+
tag = "${{ github.event.release.tag_name }}"
|
|
78
|
+
norm = tag[1:] if tag.startswith("v") else tag
|
|
79
|
+
if version != norm:
|
|
80
|
+
raise SystemExit(f"Version mismatch: pyproject.toml={version}, tag={tag}")
|
|
81
|
+
print(f"Version check passed: {version} == {tag}")
|
|
82
|
+
PY
|
|
83
|
+
- name: List distributions
|
|
84
|
+
run: ls -R dist/
|
|
85
|
+
- name: Publish distributions to PyPI
|
|
86
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [dev, master]
|
|
6
|
+
pull_request:
|
|
7
|
+
branches: [dev, master]
|
|
8
|
+
workflow_dispatch:
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
contents: read
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
unit:
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
strategy:
|
|
17
|
+
fail-fast: false
|
|
18
|
+
matrix:
|
|
19
|
+
python-version: ["3.10", "3.12"]
|
|
20
|
+
steps:
|
|
21
|
+
- uses: actions/checkout@v4
|
|
22
|
+
- uses: actions/setup-python@v5
|
|
23
|
+
with:
|
|
24
|
+
python-version: ${{ matrix.python-version }}
|
|
25
|
+
cache: pip
|
|
26
|
+
- name: Install vdjmatch + test deps (seqtree resolved from PyPI)
|
|
27
|
+
run: |
|
|
28
|
+
python -m pip install --upgrade pip
|
|
29
|
+
pip install -e ".[test,bench]"
|
|
30
|
+
- name: Run unit tests
|
|
31
|
+
run: pytest -m "not slow" -ra
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Python
|
|
2
|
+
.venv/
|
|
3
|
+
__pycache__/
|
|
4
|
+
*.py[cod]
|
|
5
|
+
*.egg-info/
|
|
6
|
+
build/
|
|
7
|
+
dist/
|
|
8
|
+
.pytest_cache/
|
|
9
|
+
.hypothesis/
|
|
10
|
+
.ruff_cache/
|
|
11
|
+
.cache/
|
|
12
|
+
# vdjmatch caches / outputs
|
|
13
|
+
*.annot.txt
|
|
14
|
+
*.annot.summary.txt
|
|
15
|
+
.vdjmatch_cache/
|
|
16
|
+
# editors / OS
|
|
17
|
+
.idea/
|
|
18
|
+
*.iml
|
|
19
|
+
.DS_Store
|
|
20
|
+
|
|
21
|
+
# Sphinx build output
|
|
22
|
+
docs/_build/
|