From 37472c3ac2fc9eb3e83e08a7a0e035333ab7f77d Mon Sep 17 00:00:00 2001 From: Tim Sackton Date: Mon, 6 Apr 2026 17:03:36 -0400 Subject: [PATCH 1/2] Fix ffq fallback for SRA downloads --- tests/tests.py | 2 ++ workflow/rules/fastq.smk | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/tests/tests.py b/tests/tests.py index 4c724be9..4cb3b1bb 100644 --- a/tests/tests.py +++ b/tests/tests.py @@ -339,6 +339,8 @@ def test_mixed_srr_and_fastq_same_sample_dry_run(request): output = result.stdout + result.stderr assert "unsupported mixed input_type values" not in output assert "download_sra" in output + assert "while IFS= read -r url; do" in output + assert 'curl -fSL "$url"' in output assert "merge_library_bams" in output assert "library=libA" in output assert "input_unit=u1" in output diff --git a/workflow/rules/fastq.smk b/workflow/rules/fastq.smk index 854324b3..9e4fe8f9 100644 --- a/workflow/rules/fastq.smk +++ b/workflow/rules/fastq.smk @@ -64,7 +64,13 @@ rule download_sra: echo "Prefetch failed, trying ENA via ffq..." >> {log} ffq --ftp {wildcards.accession} 2>> {log} \ | jq -r '.[].url' \ - | xargs -I {{}} curl -fSL -o {params.outdir}/$(basename {{}}) {{}} 2>> {log} + | while IFS= read -r url; do + [[ -n "$url" ]] || continue + echo "Downloading: $url" >> {log} + curl -fSL "$url" \ + -o {params.outdir}/$(basename "$url") \ + >> {log} 2>&1 + done fi [[ -f {output.r1} ]] && [[ -f {output.r2} ]] From 4d3dc50e97946aaef78503b7195d733dba02b801 Mon Sep 17 00:00:00 2001 From: Tim Sackton Date: Mon, 6 Apr 2026 17:45:37 -0400 Subject: [PATCH 2/2] Pin sra-tools to 3.2.1 --- workflow/envs/sra.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/workflow/envs/sra.yaml b/workflow/envs/sra.yaml index 64209b5c..22e99a9d 100644 --- a/workflow/envs/sra.yaml +++ b/workflow/envs/sra.yaml @@ -2,7 +2,7 @@ channels: - conda-forge - bioconda dependencies: - - sra-tools>=3.0 + - sra-tools=3.2.1 - pigz>=2.6 - curl>=7.73 - ffq >=0.3.1