diff --git a/atlas/atlas.py b/atlas/atlas.py index 8afc7342..c5e42cba 100644 --- a/atlas/atlas.py +++ b/atlas/atlas.py @@ -7,7 +7,7 @@ import click -from snakemake.io import load_configfile +from snakemake.common.configfile import load_configfile from .make_config import validate_config from .init.atlas_init import run_init # , run_init_sra diff --git a/atlas/make_config.py b/atlas/make_config.py index 96332497..3f21dcb8 100644 --- a/atlas/make_config.py +++ b/atlas/make_config.py @@ -1,6 +1,6 @@ from .default_values import * from snakemake.utils import update_config as snakemake_update_config -from snakemake.io import load_configfile +from snakemake.common.configfile import load_configfile import tempfile import sys import os diff --git a/atlasenv.yml b/atlasenv.yml index c1ec80ea..20c65ac1 100644 --- a/atlasenv.yml +++ b/atlasenv.yml @@ -3,10 +3,10 @@ channels: - bioconda - defaults dependencies: - - python >=3.8, < 3.12 + - python >=3.10, < 3.12 - mamba - bbmap >= 39.01, <40 - - snakemake-minimal >= 7.18.1, <7.26 + - snakemake-minimal >= 8.12, <8.15 - pygments - networkx - graphviz @@ -16,3 +16,4 @@ dependencies: - ruamel.yaml >=0.17 - cookiecutter - wget + - snakemake-executor-plugin-slurm diff --git a/workflow/rules/qc.smk b/workflow/rules/qc.smk index bde9b98d..655272e9 100644 --- a/workflow/rules/qc.smk +++ b/workflow/rules/qc.smk @@ -158,8 +158,7 @@ if not SKIP_QC: dupesubs=config["duplicates_allow_substitutions"], only_optical=("t" if config.get("duplicates_only_optical") else "f"), log: - sterr="{sample}/logs/QC/deduplicate.err", - stout="{sample}/logs/QC/deduplicate.log", + "{sample}/logs/QC/deduplicate.log", conda: "%s/required_packages.yaml" % CONDAENV threads: config.get("threads", 1) @@ -177,8 +176,7 @@ if not SKIP_QC: " threads={threads} " " pigz=t unpigz=t " " -Xmx{resources.java_mem}G " - " 2> {log.sterr} " - " 1> {log.stout} " + " &> {log} " PROCESSED_STEPS.append("filtered") @@ -229,8 +227,7 @@ if not SKIP_QC: output.reads, key="out", allow_singletons=False ), log: - sterr="{sample}/logs/QC/quality_filter.err", - stout="{sample}/logs/QC/quality_filter.log", + "{sample}/logs/QC/quality_filter.log", conda: "%s/required_packages.yaml" % CONDAENV threads: config.get("threads", 1) @@ -260,8 +257,7 @@ if not SKIP_QC: " prealloc={params.prealloc} " " pigz=t unpigz=t " " -Xmx{resources.java_mem}G " - " 2> {log.sterr} " - " 1> {log.stout} " + " &> {log} " # if there are no references, decontamination will be skipped if len(config.get("contaminant_references", {}).keys()) > 0: