@@ -33,12 +33,20 @@ ont-modkit = "*"
3333ruff = " *"
3434yamllint = " *"
3535nvitop = " >=1.6.2,<2"
36+ # WarpDemuX dependencies (compiled packages best from conda)
37+ dtaidistance = " *"
38+ scikit-learn = " *"
39+ scipy = " *"
40+ cython = " *"
41+ catboost = " *"
42+ ruptures = " *"
43+ bottleneck = " *"
3644
3745[activation ]
3846scripts = [" scripts/setup-env.sh" ]
3947
4048[tasks ]
41- setup = { cmd = " bash scripts/setup-tools.sh && pixi run -e demux install-warpdemux " , description = " One-time setup: install dorado, models, remora, and WarpDemuX" }
49+ setup = { cmd = " bash scripts/setup-tools.sh" , description = " One-time setup: install dorado, models, remora, and WarpDemuX" }
4250dl-test-data = { cmd = " cd .tests && bash dl_test_data.sh" , description = " Download test data" }
4351# Pipeline execution
4452dry-run = { cmd = " snakemake -n --configfile=config/config-test.yml" , description = " Dry run with test config" }
@@ -54,6 +62,9 @@ collapse-ref = { cmd = "python workflow/scripts/collapse_gtrndb_fasta.py", descr
5462lint-snakefmt = { cmd = " snakefmt --check workflow/" , description = " Check Snakemake formatting" }
5563lint-python = { cmd = " ruff check workflow/scripts/ && ruff format --check workflow/scripts/" , description = " Lint and check Python formatting" }
5664lint-yaml = { cmd = " yamllint -d \" {extends: default, rules: {line-length: {max: 120}, document-start: disable}}\" config/ .github/" , description = " Lint YAML files" }
65+ # WarpDemuX tasks
66+ install-warpdemux = { cmd = " bash -c '[ -d resources/tools/WarpDemuX ] || git clone --recursive https://github.com/KleistLab/WarpDemuX.git resources/tools/WarpDemuX' && uv pip install -e resources/tools/WarpDemuX" , description = " Clone and install WarpDemuX" }
67+ dry-run-demux = { cmd = " snakemake -n --configfile=config/config-demux-test.yml" , description = " Dry run demux test" }
5768
5869# Testing feature
5970[feature .test ]
@@ -70,33 +81,6 @@ test-unit = { cmd = "pytest tests/unit/ -v --cov=workflow/scripts", description
7081test-integration = { cmd = " pytest tests/integration/ -v" , description = " Run integration tests" }
7182test-all = { cmd = " pytest tests/ -v --cov=workflow/scripts" , description = " Run all tests with coverage" }
7283
73- # WarpDemuX demultiplexing feature
74- [feature .demux ]
75- platforms = [" linux-64" ]
76-
77- [feature .demux .activation ]
78- scripts = [" scripts/demux-activate.sh" ]
79-
80- [feature .demux .dependencies ]
81- # WarpDemuX dependencies
82- libstdcxx-ng = " >=12"
83- pytorch = " *"
84- dtaidistance = " *"
85- scikit-learn = " *"
86- scipy = " *"
87- cython = " *"
88- toml = " *"
89- tqdm = " *"
90- numpy = " <2"
91- joblib = " *"
92- bottleneck = " *"
93- ruptures = " *"
94- catboost = " *"
95-
96- [feature .demux .tasks ]
97- install-warpdemux = { cmd = " bash -c '[ -d resources/tools/WarpDemuX ] || git clone --recursive https://github.com/KleistLab/WarpDemuX.git resources/tools/WarpDemuX' && uv pip install -e resources/tools/WarpDemuX" , description = " Clone and install WarpDemuX" }
98- dry-run-demux = { cmd = " snakemake -n --configfile=config/config-demux-test.yml" , description = " Dry run demux test" }
99-
10084# QC Report rendering feature
10185[feature .report ]
10286platforms = [" linux-64" ]
@@ -126,5 +110,4 @@ render-qc = { cmd = "snakemake render_all_qc_reports --configfile=config/config-
126110[environments ]
127111default = []
128112test = [" test" ]
129- demux = [" demux" ]
130113report = [" report" ]
0 commit comments