sunbeam
sunbeam copied to clipboard
virtual linux-parellel
FAILED tests/e2e/test_sunbeam_run.py::test_sunbeam_run_all - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/e2e/test_sunbeam_run.py::test_sunbeam_run_all_dirty - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/e2e/test_sunbeam_run.py::test_sunbeam_run_all_no_host - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/e2e/test_sunbeam_run.py::test_sunbeam_run_all_single_end - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/e2e/test_sunbeam_run.py::test_sunbeam_run_all_space_in_header - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/unit/rules/test_adapter_removal_paired.py::test_adapter_removal_paired - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/unit/rules/test_adapter_removal_paired.py::test_adapater_removal_paired_no_adapters - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/unit/rules/test_adapter_removal_paired.py::test_adapater_removal_paired_no_opts - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/unit/rules/test_align_to_host.py::test_align_to_host - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/unit/rules/test_build_host_index.py::test_build_host_index - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/unit/rules/test_fastqc.py::test_fastqc - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/unit/rules/test_filter_reads.py::test_filter_reads - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/unit/rules/test_find_low_complexity.py::test_find_low_complexity - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/unit/rules/test_trimmomatic_paired.py::test_trimmomatic_paired - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... =================== 14 failed, 23 passed in 75.35s (0:01:15) ===================
Hi @mabouelk, could you please include what version of sunbeam you're using (sunbeam --version) and what kind of machine/OS you're running this on. Also have you been able to run the basic qc successfully despite the tests failing?
It is sunbeam v4.1.0. interestingly, I download it from here (https://github.com/sunbeam-labs/sunbeam/releases/download/v4.2.0/sunbeam.tar.gz) it should be v 4.2.0
THe OS is Mac Os.
OK thanks, the 4.1.0 is a glitch on my part that will be fixed in the next release. Are you able to successfully run the pipeline outside of the tests?
No unfortunately. I used the 3.1 version a few months ago and I cited this is my publication. Now, I am trying to get the second paper out but I can’t run the 4.1.0 and I am stuck
From: Charlie @.> Sent: Friday, January 5, 2024 12:49:51 PM To: sunbeam-labs/sunbeam @.> Cc: Abouelkhair, Mohamed @.>; Mention @.> Subject: Re: [sunbeam-labs/sunbeam] virtual linux-parellel (Issue #443)
OK thanks, the 4.1.0 is a glitch on my part that will be fixed in the next release. Are you able to successfully run the pipeline outside of the tests?
— Reply to this email directly, view it on GitHubhttps://github.com/sunbeam-labs/sunbeam/issues/443#issuecomment-1879047999, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AK7NPHTA4T4P5BFPIRRWMX3YNA4L7AVCNFSM6AAAAABBL7AKT2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZZGA2DOOJZHE. You are receiving this because you were mentioned.Message ID: @.***>
Can you please include the full output you get when sunbeam run fails?
init = PosixPath('/tmp/tmpu_88k_j8/sunbeam_run')
def test_sunbeam_run_all(init):
output_dir = init
sunbeam_output_dir = output_dir / "sunbeam_output"
sp.check_output(
[
"sunbeam",
"run",
"--profile",
f"{output_dir}",
"--notemp",
]
)
tests/e2e/test_sunbeam_run.py:54:
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
input = None, capture_output = False, timeout = None, check = True popenargs = (['sunbeam', 'run', '--profile', '/tmp/tmpu_88k_j8/sunbeam_run', '--notemp'],) kwargs = {'stdout': -1} process = <Popen: returncode: 1 args: ['sunbeam', 'run', '--profile', '/tmp/tmpu_88k_j...> stdout = b'Running: snakemake --snakefile /home/parallels/Downloads/sunbeam-4.2.0/workflow/Snakefile --conda-prefix /home/parallels/Downloads/sunbeam-4.2.0/.snakemake --conda-frontend conda --profile /tmp/tmpu_88k_j8/sunbeam_run --notemp\n' stderr = None, retcode = 1
def run(*popenargs,
input=None, capture_output=False, timeout=None, check=False, **kwargs):
"""Run command with arguments and return a CompletedProcess instance.
The returned instance will have attributes args, returncode, stdout and
stderr. By default, stdout and stderr are not captured, and those attributes
will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them,
or pass capture_output=True to capture both.
If check is True and the exit code was non-zero, it raises a
CalledProcessError. The CalledProcessError object will have the return code
in the returncode attribute, and output & stderr attributes if those streams
were captured.
If timeout is given, and the process takes too long, a TimeoutExpired
exception will be raised.
There is an optional argument "input", allowing you to
pass bytes or a string to the subprocess's stdin. If you use this argument
you may not also use the Popen constructor's "stdin" argument, as
it will be used internally.
By default, all communication is in bytes, and therefore any "input" should
be bytes, and the stdout and stderr will be bytes. If in text mode, any
"input" should be a string, and stdout and stderr will be strings decoded
according to locale encoding, or by "encoding" if set. Text mode is
triggered by setting any of text, encoding, errors or universal_newlines.
The other arguments are the same as for the Popen constructor.
"""
if input is not None:
if kwargs.get('stdin') is not None:
raise ValueError('stdin and input arguments may not both be used.')
kwargs['stdin'] = PIPE
if capture_output:
if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
raise ValueError('stdout and stderr arguments may not be used '
'with capture_output.')
kwargs['stdout'] = PIPE
kwargs['stderr'] = PIPE
with Popen(*popenargs, **kwargs) as process:
try:
stdout, stderr = process.communicate(input, timeout=timeout)
except TimeoutExpired as exc:
process.kill()
if _mswindows:
# Windows accumulates the output in a single blocking
# read() call run on child threads, with the timeout
# being done in a join() on those threads. communicate()
# _after_ kill() is required to collect that and add it
# to the exception.
exc.stdout, exc.stderr = process.communicate()
else:
# POSIX _communicate already populated the output so
# far into the TimeoutExpired exception.
process.wait()
raise
except: # Including KeyboardInterrupt, communicate handled that.
process.kill()
# We don't call process.wait() as .__exit__ does that for us.
raise
retcode = process.poll()
if check and retcode:
raise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
E subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/tmp/tmpu_88k_j8/sunbeam_run', '--notemp']' returned non-zero exit status 1.
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:571: CalledProcessError ---------------------------- Captured stderr setup ----------------------------- Creating project folder at /tmp/tmpu_88k_j8/sunbeam_run... Guessing sample name format from files in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads... Best guess: {sample}R{rp}.fastq.gz Found 2 samples in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads. New sample list written to /tmp/tmpu_88k_j8/sunbeam_run/samples.csv New config file written to /tmp/tmpu_88k_j8/sunbeam_run/sunbeam_config.yml New profile file written to /tmp/tmpu_88k_j8/sunbeam_run/config.yaml ----------------------------- Captured stderr call ----------------------------- Using profile /tmp/tmpu_88k_j8/sunbeam_run for setting default command line arguments. Collecting host/contaminant genomes... done. Building DAG of jobs... Creating conda environment workflow/envs/cutadapt.yml... Downloading and installing remote packages. CreateCondaEnvironmentException: Could not create conda environment from /home/parallels/Downloads/sunbeam-4.2.0/workflow/rules/../envs/cutadapt.yml: Command: conda env create --quiet --file "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/7b646d5e9a2b7bcc5e4ecd359bc80878.yaml" --prefix "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/7b646d5e9a2b7bcc5e4ecd359bc80878_" Output: Channels:
- bioconda
- defaults Platform: linux-aarch64 Collecting package metadata (repodata.json): ...working... done Solving environment: ...working... failed
PackagesNotFoundError: The following packages are not available from current channels:
- cutadapt
Current channels:
- https://conda.anaconda.org/bioconda/linux-aarch64
- https://repo.anaconda.com/pkgs/main/linux-aarch64
- https://repo.anaconda.com/pkgs/r/linux-aarch64
To search for alternate channels that may provide the conda package you're looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
__________________________ test_sunbeam_run_all_dirty __________________________
init_dirty = PosixPath('/tmp/tmpx1yod3uw/sunbeam_run_dirty')
def test_sunbeam_run_all_dirty(init_dirty):
output_dir = init_dirty
sunbeam_output_dir = output_dir / "sunbeam_output"
sp.check_output(
[
"sunbeam",
"run",
"--profile",
f"{output_dir}",
"--notemp",
]
)
tests/e2e/test_sunbeam_run.py:154:
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
input = None, capture_output = False, timeout = None, check = True popenargs = (['sunbeam', 'run', '--profile', '/tmp/tmpx1yod3uw/sunbeam_run_dirty', '--notemp'],) kwargs = {'stdout': -1} process = <Popen: returncode: 1 args: ['sunbeam', 'run', '--profile', '/tmp/tmpx1yod3u...> stdout = b'Running: snakemake --snakefile /home/parallels/Downloads/sunbeam-4.2.0/workflow/Snakefile --conda-prefix /home/parallels/Downloads/sunbeam-4.2.0/.snakemake --conda-frontend conda --profile /tmp/tmpx1yod3uw/sunbeam_run_dirty --notemp\n' stderr = None, retcode = 1
def run(*popenargs,
input=None, capture_output=False, timeout=None, check=False, **kwargs):
"""Run command with arguments and return a CompletedProcess instance.
The returned instance will have attributes args, returncode, stdout and
stderr. By default, stdout and stderr are not captured, and those attributes
will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them,
or pass capture_output=True to capture both.
If check is True and the exit code was non-zero, it raises a
CalledProcessError. The CalledProcessError object will have the return code
in the returncode attribute, and output & stderr attributes if those streams
were captured.
If timeout is given, and the process takes too long, a TimeoutExpired
exception will be raised.
There is an optional argument "input", allowing you to
pass bytes or a string to the subprocess's stdin. If you use this argument
you may not also use the Popen constructor's "stdin" argument, as
it will be used internally.
By default, all communication is in bytes, and therefore any "input" should
be bytes, and the stdout and stderr will be bytes. If in text mode, any
"input" should be a string, and stdout and stderr will be strings decoded
according to locale encoding, or by "encoding" if set. Text mode is
triggered by setting any of text, encoding, errors or universal_newlines.
The other arguments are the same as for the Popen constructor.
"""
if input is not None:
if kwargs.get('stdin') is not None:
raise ValueError('stdin and input arguments may not both be used.')
kwargs['stdin'] = PIPE
if capture_output:
if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
raise ValueError('stdout and stderr arguments may not be used '
'with capture_output.')
kwargs['stdout'] = PIPE
kwargs['stderr'] = PIPE
with Popen(*popenargs, **kwargs) as process:
try:
stdout, stderr = process.communicate(input, timeout=timeout)
except TimeoutExpired as exc:
process.kill()
if _mswindows:
# Windows accumulates the output in a single blocking
# read() call run on child threads, with the timeout
# being done in a join() on those threads. communicate()
# _after_ kill() is required to collect that and add it
# to the exception.
exc.stdout, exc.stderr = process.communicate()
else:
# POSIX _communicate already populated the output so
# far into the TimeoutExpired exception.
process.wait()
raise
except: # Including KeyboardInterrupt, communicate handled that.
process.kill()
# We don't call process.wait() as .__exit__ does that for us.
raise
retcode = process.poll()
if check and retcode:
raise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
E subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/tmp/tmpx1yod3uw/sunbeam_run_dirty', '--notemp']' returned non-zero exit status 1.
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:571: CalledProcessError ---------------------------- Captured stderr setup ----------------------------- Creating project folder at /tmp/tmpx1yod3uw/sunbeam_run_dirty... Guessing sample name format from files in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/dirty_reads... Best guess: R{rp}{sample}.fastq.gz Found 1 samples in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/dirty_reads. New sample list written to /tmp/tmpx1yod3uw/sunbeam_run_dirty/samples.csv New config file written to /tmp/tmpx1yod3uw/sunbeam_run_dirty/sunbeam_config.yml New profile file written to /tmp/tmpx1yod3uw/sunbeam_run_dirty/config.yaml ----------------------------- Captured stderr call ----------------------------- Using profile /tmp/tmpx1yod3uw/sunbeam_run_dirty for setting default command line arguments. Collecting host/contaminant genomes... done. Building DAG of jobs... Creating conda environment workflow/envs/qc.yml... Downloading and installing remote packages. CreateCondaEnvironmentException: Could not create conda environment from /home/parallels/Downloads/sunbeam-4.2.0/workflow/rules/../envs/qc.yml: Command: conda env create --quiet --file "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/fa41a57fae02b20ea8cb3491c688257f.yaml" --prefix "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/fa41a57fae02b20ea8cb3491c688257f_" Output: Channels:
- bioconda
- conda-forge
- defaults Platform: linux-aarch64 Collecting package metadata (repodata.json): ...working... done Solving environment: ...working... failed
PackagesNotFoundError: The following packages are not available from current channels:
- bwa
Current channels:
- https://conda.anaconda.org/bioconda/linux-aarch64
- https://conda.anaconda.org/conda-forge/linux-aarch64
- https://repo.anaconda.com/pkgs/main/linux-aarch64
- https://repo.anaconda.com/pkgs/r/linux-aarch64
To search for alternate channels that may provide the conda package you're looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
_________________________ test_sunbeam_run_all_no_host _________________________
init = PosixPath('/tmp/tmp5g8r0ygv/sunbeam_run')
def test_sunbeam_run_all_no_host(init):
output_dir = init
sunbeam_output_dir = output_dir / "sunbeam_output"
sp.check_output(
[
"sunbeam",
"run",
"--profile",
f"{output_dir}",
"--notemp",
]
)
tests/e2e/test_sunbeam_run.py:205:
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
input = None, capture_output = False, timeout = None, check = True popenargs = (['sunbeam', 'run', '--profile', '/tmp/tmp5g8r0ygv/sunbeam_run', '--notemp'],) kwargs = {'stdout': -1} process = <Popen: returncode: 1 args: ['sunbeam', 'run', '--profile', '/tmp/tmp5g8r0yg...> stdout = b'Running: snakemake --snakefile /home/parallels/Downloads/sunbeam-4.2.0/workflow/Snakefile --conda-prefix /home/parallels/Downloads/sunbeam-4.2.0/.snakemake --conda-frontend conda --profile /tmp/tmp5g8r0ygv/sunbeam_run --notemp\n' stderr = None, retcode = 1
def run(*popenargs,
input=None, capture_output=False, timeout=None, check=False, **kwargs):
"""Run command with arguments and return a CompletedProcess instance.
The returned instance will have attributes args, returncode, stdout and
stderr. By default, stdout and stderr are not captured, and those attributes
will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them,
or pass capture_output=True to capture both.
If check is True and the exit code was non-zero, it raises a
CalledProcessError. The CalledProcessError object will have the return code
in the returncode attribute, and output & stderr attributes if those streams
were captured.
If timeout is given, and the process takes too long, a TimeoutExpired
exception will be raised.
There is an optional argument "input", allowing you to
pass bytes or a string to the subprocess's stdin. If you use this argument
you may not also use the Popen constructor's "stdin" argument, as
it will be used internally.
By default, all communication is in bytes, and therefore any "input" should
be bytes, and the stdout and stderr will be bytes. If in text mode, any
"input" should be a string, and stdout and stderr will be strings decoded
according to locale encoding, or by "encoding" if set. Text mode is
triggered by setting any of text, encoding, errors or universal_newlines.
The other arguments are the same as for the Popen constructor.
"""
if input is not None:
if kwargs.get('stdin') is not None:
raise ValueError('stdin and input arguments may not both be used.')
kwargs['stdin'] = PIPE
if capture_output:
if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
raise ValueError('stdout and stderr arguments may not be used '
'with capture_output.')
kwargs['stdout'] = PIPE
kwargs['stderr'] = PIPE
with Popen(*popenargs, **kwargs) as process:
try:
stdout, stderr = process.communicate(input, timeout=timeout)
except TimeoutExpired as exc:
process.kill()
if _mswindows:
# Windows accumulates the output in a single blocking
# read() call run on child threads, with the timeout
# being done in a join() on those threads. communicate()
# _after_ kill() is required to collect that and add it
# to the exception.
exc.stdout, exc.stderr = process.communicate()
else:
# POSIX _communicate already populated the output so
# far into the TimeoutExpired exception.
process.wait()
raise
except: # Including KeyboardInterrupt, communicate handled that.
process.kill()
# We don't call process.wait() as .__exit__ does that for us.
raise
retcode = process.poll()
if check and retcode:
raise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
E subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/tmp/tmp5g8r0ygv/sunbeam_run', '--notemp']' returned non-zero exit status 1.
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:571: CalledProcessError ---------------------------- Captured stderr setup ----------------------------- Creating project folder at /tmp/tmp5g8r0ygv/sunbeam_run... Guessing sample name format from files in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads... Best guess: {sample}R{rp}.fastq.gz Found 2 samples in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads. New sample list written to /tmp/tmp5g8r0ygv/sunbeam_run/samples.csv New config file written to /tmp/tmp5g8r0ygv/sunbeam_run/sunbeam_config.yml New profile file written to /tmp/tmp5g8r0ygv/sunbeam_run/config.yaml ----------------------------- Captured stderr call ----------------------------- Using profile /tmp/tmp5g8r0ygv/sunbeam_run for setting default command line arguments. Collecting host/contaminant genomes... done. Building DAG of jobs... Creating conda environment workflow/envs/cutadapt.yml... Downloading and installing remote packages. CreateCondaEnvironmentException: Could not create conda environment from /home/parallels/Downloads/sunbeam-4.2.0/workflow/rules/../envs/cutadapt.yml: Command: conda env create --quiet --file "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/7b646d5e9a2b7bcc5e4ecd359bc80878.yaml" --prefix "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/7b646d5e9a2b7bcc5e4ecd359bc80878_" Output: Channels:
- bioconda
- defaults Platform: linux-aarch64 Collecting package metadata (repodata.json): ...working... done Solving environment: ...working... failed
PackagesNotFoundError: The following packages are not available from current channels:
- cutadapt
Current channels:
- https://conda.anaconda.org/bioconda/linux-aarch64
- https://repo.anaconda.com/pkgs/main/linux-aarch64
- https://repo.anaconda.com/pkgs/r/linux-aarch64
To search for alternate channels that may provide the conda package you're looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
_______________________ test_sunbeam_run_all_single_end ________________________
init_single_end = PosixPath('/tmp/tmpxxsf55kr/sunbeam_run_single_end')
def test_sunbeam_run_all_single_end(init_single_end):
output_dir = init_single_end
sunbeam_output_dir = output_dir / "sunbeam_output"
sp.check_output(
[
"sunbeam",
"run",
"--profile",
f"{output_dir}",
"--notemp",
]
)
tests/e2e/test_sunbeam_run.py:262:
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
input = None, capture_output = False, timeout = None, check = True popenargs = (['sunbeam', 'run', '--profile', '/tmp/tmpxxsf55kr/sunbeam_run_single_end', '--notemp'],) kwargs = {'stdout': -1} process = <Popen: returncode: 1 args: ['sunbeam', 'run', '--profile', '/tmp/tmpxxsf55k...> stdout = b'Running: snakemake --snakefile /home/parallels/Downloads/sunbeam-4.2.0/workflow/Snakefile --conda-prefix /home/paral...Downloads/sunbeam-4.2.0/.snakemake --conda-frontend conda --profile /tmp/tmpxxsf55kr/sunbeam_run_single_end --notemp\n' stderr = None, retcode = 1
def run(*popenargs,
input=None, capture_output=False, timeout=None, check=False, **kwargs):
"""Run command with arguments and return a CompletedProcess instance.
The returned instance will have attributes args, returncode, stdout and
stderr. By default, stdout and stderr are not captured, and those attributes
will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them,
or pass capture_output=True to capture both.
If check is True and the exit code was non-zero, it raises a
CalledProcessError. The CalledProcessError object will have the return code
in the returncode attribute, and output & stderr attributes if those streams
were captured.
If timeout is given, and the process takes too long, a TimeoutExpired
exception will be raised.
There is an optional argument "input", allowing you to
pass bytes or a string to the subprocess's stdin. If you use this argument
you may not also use the Popen constructor's "stdin" argument, as
it will be used internally.
By default, all communication is in bytes, and therefore any "input" should
be bytes, and the stdout and stderr will be bytes. If in text mode, any
"input" should be a string, and stdout and stderr will be strings decoded
according to locale encoding, or by "encoding" if set. Text mode is
triggered by setting any of text, encoding, errors or universal_newlines.
The other arguments are the same as for the Popen constructor.
"""
if input is not None:
if kwargs.get('stdin') is not None:
raise ValueError('stdin and input arguments may not both be used.')
kwargs['stdin'] = PIPE
if capture_output:
if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
raise ValueError('stdout and stderr arguments may not be used '
'with capture_output.')
kwargs['stdout'] = PIPE
kwargs['stderr'] = PIPE
with Popen(*popenargs, **kwargs) as process:
try:
stdout, stderr = process.communicate(input, timeout=timeout)
except TimeoutExpired as exc:
process.kill()
if _mswindows:
# Windows accumulates the output in a single blocking
# read() call run on child threads, with the timeout
# being done in a join() on those threads. communicate()
# _after_ kill() is required to collect that and add it
# to the exception.
exc.stdout, exc.stderr = process.communicate()
else:
# POSIX _communicate already populated the output so
# far into the TimeoutExpired exception.
process.wait()
raise
except: # Including KeyboardInterrupt, communicate handled that.
process.kill()
# We don't call process.wait() as .__exit__ does that for us.
raise
retcode = process.poll()
if check and retcode:
raise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
E subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/tmp/tmpxxsf55kr/sunbeam_run_single_end', '--notemp']' returned non-zero exit status 1.
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:571: CalledProcessError ---------------------------- Captured stderr setup ----------------------------- Creating project folder at /tmp/tmpxxsf55kr/sunbeam_run_single_end... Found 2 samples in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/single_end_reads. New sample list written to /tmp/tmpxxsf55kr/sunbeam_run_single_end/samples.csv New config file written to /tmp/tmpxxsf55kr/sunbeam_run_single_end/sunbeam_config.yml New profile file written to /tmp/tmpxxsf55kr/sunbeam_run_single_end/config.yaml ----------------------------- Captured stderr call ----------------------------- Using profile /tmp/tmpxxsf55kr/sunbeam_run_single_end for setting default command line arguments. Collecting host/contaminant genomes... done. Building DAG of jobs... Creating conda environment workflow/envs/cutadapt.yml... Downloading and installing remote packages. CreateCondaEnvironmentException: Could not create conda environment from /home/parallels/Downloads/sunbeam-4.2.0/workflow/rules/../envs/cutadapt.yml: Command: conda env create --quiet --file "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/7b646d5e9a2b7bcc5e4ecd359bc80878_.yaml" --prefix "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/7b646d5e9a2b7bcc5e4ecd359bc80878_" Output: Channels:
- bioconda
- defaults Platform: linux-aarch64 Collecting package metadata (repodata.json): ...working... done Solving environment: ...working... failed
PackagesNotFoundError: The following packages are not available from current channels:
- cutadapt
Current channels:
- https://conda.anaconda.org/bioconda/linux-aarch64
- https://repo.anaconda.com/pkgs/main/linux-aarch64
- https://repo.anaconda.com/pkgs/r/linux-aarch64
To search for alternate channels that may provide the conda package you're looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
_____________________ test_sunbeam_run_all_space_in_header _____________________
init_spaces = PosixPath('/tmp/tmpcy0o0gex/sunbeam_run_space_in_header')
def test_sunbeam_run_all_space_in_header(init_spaces):
output_dir = init_spaces
sunbeam_output_dir = output_dir / "sunbeam_output"
sp.check_output(
[
"sunbeam",
"run",
"--profile",
f"{output_dir}",
"--notemp",
]
)
tests/e2e/test_sunbeam_run.py:327:
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
input = None, capture_output = False, timeout = None, check = True popenargs = (['sunbeam', 'run', '--profile', '/tmp/tmpcy0o0gex/sunbeam_run_space_in_header', '--notemp'],) kwargs = {'stdout': -1} process = <Popen: returncode: 1 args: ['sunbeam', 'run', '--profile', '/tmp/tmpcy0o0ge...> stdout = b'Running: snakemake --snakefile /home/parallels/Downloads/sunbeam-4.2.0/workflow/Snakefile --conda-prefix /home/paral...oads/sunbeam-4.2.0/.snakemake --conda-frontend conda --profile /tmp/tmpcy0o0gex/sunbeam_run_space_in_header --notemp\n' stderr = None, retcode = 1
def run(*popenargs,
input=None, capture_output=False, timeout=None, check=False, **kwargs):
"""Run command with arguments and return a CompletedProcess instance.
The returned instance will have attributes args, returncode, stdout and
stderr. By default, stdout and stderr are not captured, and those attributes
will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them,
or pass capture_output=True to capture both.
If check is True and the exit code was non-zero, it raises a
CalledProcessError. The CalledProcessError object will have the return code
in the returncode attribute, and output & stderr attributes if those streams
were captured.
If timeout is given, and the process takes too long, a TimeoutExpired
exception will be raised.
There is an optional argument "input", allowing you to
pass bytes or a string to the subprocess's stdin. If you use this argument
you may not also use the Popen constructor's "stdin" argument, as
it will be used internally.
By default, all communication is in bytes, and therefore any "input" should
be bytes, and the stdout and stderr will be bytes. If in text mode, any
"input" should be a string, and stdout and stderr will be strings decoded
according to locale encoding, or by "encoding" if set. Text mode is
triggered by setting any of text, encoding, errors or universal_newlines.
The other arguments are the same as for the Popen constructor.
"""
if input is not None:
if kwargs.get('stdin') is not None:
raise ValueError('stdin and input arguments may not both be used.')
kwargs['stdin'] = PIPE
if capture_output:
if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
raise ValueError('stdout and stderr arguments may not be used '
'with capture_output.')
kwargs['stdout'] = PIPE
kwargs['stderr'] = PIPE
with Popen(*popenargs, **kwargs) as process:
try:
stdout, stderr = process.communicate(input, timeout=timeout)
except TimeoutExpired as exc:
process.kill()
if _mswindows:
# Windows accumulates the output in a single blocking
# read() call run on child threads, with the timeout
# being done in a join() on those threads. communicate()
# _after_ kill() is required to collect that and add it
# to the exception.
exc.stdout, exc.stderr = process.communicate()
else:
# POSIX _communicate already populated the output so
# far into the TimeoutExpired exception.
process.wait()
raise
except: # Including KeyboardInterrupt, communicate handled that.
process.kill()
# We don't call process.wait() as .__exit__ does that for us.
raise
retcode = process.poll()
if check and retcode:
raise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
E subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/tmp/tmpcy0o0gex/sunbeam_run_space_in_header', '--notemp']' returned non-zero exit status 1.
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:571: CalledProcessError ---------------------------- Captured stderr setup ----------------------------- Creating project folder at /tmp/tmpcy0o0gex/sunbeam_run_space_in_header... Guessing sample name format from files in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/spaces... Best guess: {sample}R{rp}.fastq.gz Found 2 samples in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/spaces. New sample list written to /tmp/tmpcy0o0gex/sunbeam_run_space_in_header/samples.csv New config file written to /tmp/tmpcy0o0gex/sunbeam_run_space_in_header/sunbeam_config.yml New profile file written to /tmp/tmpcy0o0gex/sunbeam_run_space_in_header/config.yaml ----------------------------- Captured stderr call ----------------------------- Using profile /tmp/tmpcy0o0gex/sunbeam_run_space_in_header for setting default command line arguments. Collecting host/contaminant genomes... done. Building DAG of jobs... Creating conda environment workflow/envs/qc.yml... Downloading and installing remote packages. CreateCondaEnvironmentException: Could not create conda environment from /home/parallels/Downloads/sunbeam-4.2.0/workflow/rules/../envs/qc.yml: Command: conda env create --quiet --file "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/fa41a57fae02b20ea8cb3491c688257f.yaml" --prefix "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/fa41a57fae02b20ea8cb3491c688257f_" Output: Channels:
- bioconda
- conda-forge
- defaults Platform: linux-aarch64 Collecting package metadata (repodata.json): ...working... done Solving environment: ...working... failed
PackagesNotFoundError: The following packages are not available from current channels:
- bwa
Current channels:
- https://conda.anaconda.org/bioconda/linux-aarch64
- https://conda.anaconda.org/conda-forge/linux-aarch64
- https://repo.anaconda.com/pkgs/main/linux-aarch64
- https://repo.anaconda.com/pkgs/r/linux-aarch64
To search for alternate channels that may provide the conda package you're looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
_________________________ test_adapter_removal_paired __________________________
setup = PosixPath('/tmp/tmp8mpdqbww/rules')
def test_adapter_removal_paired(setup):
output_dir = setup
sunbeam_output_dir = output_dir / "sunbeam_output"
lr1 = sunbeam_output_dir / "qc" / "01_cutadapt" / "LONG_1.fastq.gz"
lr2 = sunbeam_output_dir / "qc" / "01_cutadapt" / "LONG_2.fastq.gz"
sr1 = sunbeam_output_dir / "qc" / "01_cutadapt" / "SHORT_1.fastq.gz"
sr2 = sunbeam_output_dir / "qc" / "01_cutadapt" / "SHORT_2.fastq.gz"
sp.check_output(
[
"sunbeam",
"run",
"--profile",
f"{output_dir}",
"--notemp",
"--allowed-rules=adapter_removal_paired",
"--rerun-triggers=input",
f"{lr1}",
f"{lr2}",
f"{sr1}",
f"{sr2}",
]
)
tests/unit/rules/test_adapter_removal_paired.py:34:
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
input = None, capture_output = False, timeout = None, check = True popenargs = (['sunbeam', 'run', '--profile', '/tmp/tmp8mpdqbww/rules', '--notemp', '--allowed-rules=adapter_removal_paired', ...],) kwargs = {'stdout': -1} process = <Popen: returncode: 1 args: ['sunbeam', 'run', '--profile', '/tmp/tmp8mpdqbw...> stdout = b'Running: snakemake --snakefile /home/parallels/Downloads/sunbeam-4.2.0/workflow/Snakefile --conda-prefix /home/paral...sunbeam_output/qc/01_cutadapt/SHORT_1.fastq.gz /tmp/tmp8mpdqbww/rules/sunbeam_output/qc/01_cutadapt/SHORT_2.fastq.gz\n' stderr = None, retcode = 1
def run(*popenargs,
input=None, capture_output=False, timeout=None, check=False, **kwargs):
"""Run command with arguments and return a CompletedProcess instance.
The returned instance will have attributes args, returncode, stdout and
stderr. By default, stdout and stderr are not captured, and those attributes
will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them,
or pass capture_output=True to capture both.
If check is True and the exit code was non-zero, it raises a
CalledProcessError. The CalledProcessError object will have the return code
in the returncode attribute, and output & stderr attributes if those streams
were captured.
If timeout is given, and the process takes too long, a TimeoutExpired
exception will be raised.
There is an optional argument "input", allowing you to
pass bytes or a string to the subprocess's stdin. If you use this argument
you may not also use the Popen constructor's "stdin" argument, as
it will be used internally.
By default, all communication is in bytes, and therefore any "input" should
be bytes, and the stdout and stderr will be bytes. If in text mode, any
"input" should be a string, and stdout and stderr will be strings decoded
according to locale encoding, or by "encoding" if set. Text mode is
triggered by setting any of text, encoding, errors or universal_newlines.
The other arguments are the same as for the Popen constructor.
"""
if input is not None:
if kwargs.get('stdin') is not None:
raise ValueError('stdin and input arguments may not both be used.')
kwargs['stdin'] = PIPE
if capture_output:
if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
raise ValueError('stdout and stderr arguments may not be used '
'with capture_output.')
kwargs['stdout'] = PIPE
kwargs['stderr'] = PIPE
with Popen(*popenargs, **kwargs) as process:
try:
stdout, stderr = process.communicate(input, timeout=timeout)
except TimeoutExpired as exc:
process.kill()
if _mswindows:
# Windows accumulates the output in a single blocking
# read() call run on child threads, with the timeout
# being done in a join() on those threads. communicate()
# _after_ kill() is required to collect that and add it
# to the exception.
exc.stdout, exc.stderr = process.communicate()
else:
# POSIX _communicate already populated the output so
# far into the TimeoutExpired exception.
process.wait()
raise
except: # Including KeyboardInterrupt, communicate handled that.
process.kill()
# We don't call process.wait() as .__exit__ does that for us.
raise
retcode = process.poll()
if check and retcode:
raise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
E subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/tmp/tmp8mpdqbww/rules', '--notemp', '--allowed-rules=adapter_removal_paired', '--rerun-triggers=input', '/tmp/tmp8mpdqbww/rules/sunbeam_output/qc/01_cutadapt/LONG_1.fastq.gz', '/tmp/tmp8mpdqbww/rules/sunbeam_output/qc/01_cutadapt/LONG_2.fastq.gz', '/tmp/tmp8mpdqbww/rules/sunbeam_output/qc/01_cutadapt/SHORT_1.fastq.gz', '/tmp/tmp8mpdqbww/rules/sunbeam_output/qc/01_cutadapt/SHORT_2.fastq.gz']' returned non-zero exit status 1.
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:571: CalledProcessError ---------------------------- Captured stderr setup ----------------------------- Creating project folder at /tmp/tmp8mpdqbww/rules... Guessing sample name format from files in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads... Best guess: {sample}R{rp}.fastq.gz Found 2 samples in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads. New sample list written to /tmp/tmp8mpdqbww/rules/samples.csv New config file written to /tmp/tmp8mpdqbww/rules/sunbeam_config.yml New profile file written to /tmp/tmp8mpdqbww/rules/config.yaml ----------------------------- Captured stderr call ----------------------------- Using profile /tmp/tmp8mpdqbww/rules for setting default command line arguments. Collecting host/contaminant genomes... done. Building DAG of jobs... Creating conda environment workflow/envs/cutadapt.yml... Downloading and installing remote packages. CreateCondaEnvironmentException: Could not create conda environment from /home/parallels/Downloads/sunbeam-4.2.0/workflow/rules/../envs/cutadapt.yml: Command: conda env create --quiet --file "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/7b646d5e9a2b7bcc5e4ecd359bc80878.yaml" --prefix "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/7b646d5e9a2b7bcc5e4ecd359bc80878_" Output: Channels:
- bioconda
- defaults Platform: linux-aarch64 Collecting package metadata (repodata.json): ...working... done Solving environment: ...working... failed
PackagesNotFoundError: The following packages are not available from current channels:
- cutadapt
Current channels:
- https://conda.anaconda.org/bioconda/linux-aarch64
- https://repo.anaconda.com/pkgs/main/linux-aarch64
- https://repo.anaconda.com/pkgs/r/linux-aarch64
To search for alternate channels that may provide the conda package you're looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
___________________ test_adapater_removal_paired_no_adapters ___________________
setup = PosixPath('/tmp/tmpxpfzxtfg/rules')
def test_adapater_removal_paired_no_adapters(setup):
output_dir = setup
sunbeam_output_dir = output_dir / "sunbeam_output"
lr1 = sunbeam_output_dir / "qc" / "01_cutadapt" / "SHORT_1.fastq.gz"
lr2 = sunbeam_output_dir / "qc" / "01_cutadapt" / "SHORT_2.fastq.gz"
sr1 = sunbeam_output_dir / "qc" / "01_cutadapt" / "LONG_1.fastq.gz"
sr2 = sunbeam_output_dir / "qc" / "01_cutadapt" / "LONG_2.fastq.gz"
config_str = f"qc: {{fwd_adapters: }}"
sp.check_output(
[
"sunbeam",
"config",
"modify",
"-i",
"-s",
config_str,
f"{output_dir / 'sunbeam_config.yml'}",
]
)
config_str = f"qc: {{rev_adapters: }}"
sp.check_output(
[
"sunbeam",
"config",
"modify",
"-i",
"-s",
config_str,
f"{output_dir / 'sunbeam_config.yml'}",
]
)
sp.check_output(
[
"sunbeam",
"run",
"--profile",
f"{output_dir}",
"--notemp",
"--allowed-rules=adapter_removal_paired",
"--rerun-triggers=input",
f"{lr1}",
f"{lr2}",
f"{sr1}",
f"{sr2}",
]
)
tests/unit/rules/test_adapter_removal_paired.py:94:
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
input = None, capture_output = False, timeout = None, check = True popenargs = (['sunbeam', 'run', '--profile', '/tmp/tmpxpfzxtfg/rules', '--notemp', '--allowed-rules=adapter_removal_paired', ...],) kwargs = {'stdout': -1} process = <Popen: returncode: 1 args: ['sunbeam', 'run', '--profile', '/tmp/tmpxpfzxtf...> stdout = b'Running: snakemake --snakefile /home/parallels/Downloads/sunbeam-4.2.0/workflow/Snakefile --conda-prefix /home/paral...s/sunbeam_output/qc/01_cutadapt/LONG_1.fastq.gz /tmp/tmpxpfzxtfg/rules/sunbeam_output/qc/01_cutadapt/LONG_2.fastq.gz\n' stderr = None, retcode = 1
def run(*popenargs,
input=None, capture_output=False, timeout=None, check=False, **kwargs):
"""Run command with arguments and return a CompletedProcess instance.
The returned instance will have attributes args, returncode, stdout and
stderr. By default, stdout and stderr are not captured, and those attributes
will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them,
or pass capture_output=True to capture both.
If check is True and the exit code was non-zero, it raises a
CalledProcessError. The CalledProcessError object will have the return code
in the returncode attribute, and output & stderr attributes if those streams
were captured.
If timeout is given, and the process takes too long, a TimeoutExpired
exception will be raised.
There is an optional argument "input", allowing you to
pass bytes or a string to the subprocess's stdin. If you use this argument
you may not also use the Popen constructor's "stdin" argument, as
it will be used internally.
By default, all communication is in bytes, and therefore any "input" should
be bytes, and the stdout and stderr will be bytes. If in text mode, any
"input" should be a string, and stdout and stderr will be strings decoded
according to locale encoding, or by "encoding" if set. Text mode is
triggered by setting any of text, encoding, errors or universal_newlines.
The other arguments are the same as for the Popen constructor.
"""
if input is not None:
if kwargs.get('stdin') is not None:
raise ValueError('stdin and input arguments may not both be used.')
kwargs['stdin'] = PIPE
if capture_output:
if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
raise ValueError('stdout and stderr arguments may not be used '
'with capture_output.')
kwargs['stdout'] = PIPE
kwargs['stderr'] = PIPE
with Popen(*popenargs, **kwargs) as process:
try:
stdout, stderr = process.communicate(input, timeout=timeout)
except TimeoutExpired as exc:
process.kill()
if _mswindows:
# Windows accumulates the output in a single blocking
# read() call run on child threads, with the timeout
# being done in a join() on those threads. communicate()
# _after_ kill() is required to collect that and add it
# to the exception.
exc.stdout, exc.stderr = process.communicate()
else:
# POSIX _communicate already populated the output so
# far into the TimeoutExpired exception.
process.wait()
raise
except: # Including KeyboardInterrupt, communicate handled that.
process.kill()
# We don't call process.wait() as .__exit__ does that for us.
raise
retcode = process.poll()
if check and retcode:
raise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
E subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/tmp/tmpxpfzxtfg/rules', '--notemp', '--allowed-rules=adapter_removal_paired', '--rerun-triggers=input', '/tmp/tmpxpfzxtfg/rules/sunbeam_output/qc/01_cutadapt/SHORT_1.fastq.gz', '/tmp/tmpxpfzxtfg/rules/sunbeam_output/qc/01_cutadapt/SHORT_2.fastq.gz', '/tmp/tmpxpfzxtfg/rules/sunbeam_output/qc/01_cutadapt/LONG_1.fastq.gz', '/tmp/tmpxpfzxtfg/rules/sunbeam_output/qc/01_cutadapt/LONG_2.fastq.gz']' returned non-zero exit status 1.
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:571: CalledProcessError ---------------------------- Captured stderr setup ----------------------------- Creating project folder at /tmp/tmpxpfzxtfg/rules... Guessing sample name format from files in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads... Best guess: {sample}R{rp}.fastq.gz Found 2 samples in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads. New sample list written to /tmp/tmpxpfzxtfg/rules/samples.csv New config file written to /tmp/tmpxpfzxtfg/rules/sunbeam_config.yml New profile file written to /tmp/tmpxpfzxtfg/rules/config.yaml ----------------------------- Captured stderr call ----------------------------- Using profile /tmp/tmpxpfzxtfg/rules for setting default command line arguments. Collecting host/contaminant genomes... done. Building DAG of jobs... Creating conda environment workflow/envs/cutadapt.yml... Downloading and installing remote packages. CreateCondaEnvironmentException: Could not create conda environment from /home/parallels/Downloads/sunbeam-4.2.0/workflow/rules/../envs/cutadapt.yml: Command: conda env create --quiet --file "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/7b646d5e9a2b7bcc5e4ecd359bc80878.yaml" --prefix "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/7b646d5e9a2b7bcc5e4ecd359bc80878_" Output: Channels:
- bioconda
- defaults Platform: linux-aarch64 Collecting package metadata (repodata.json): ...working... done Solving environment: ...working... failed
PackagesNotFoundError: The following packages are not available from current channels:
- cutadapt
Current channels:
- https://conda.anaconda.org/bioconda/linux-aarch64
- https://repo.anaconda.com/pkgs/main/linux-aarch64
- https://repo.anaconda.com/pkgs/r/linux-aarch64
To search for alternate channels that may provide the conda package you're looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
_____________________ test_adapater_removal_paired_no_opts _____________________
setup = PosixPath('/tmp/tmpp128vh45/rules')
def test_adapater_removal_paired_no_opts(setup):
output_dir = setup
sunbeam_output_dir = output_dir / "sunbeam_output"
lr1 = sunbeam_output_dir / "qc" / "01_cutadapt" / "SHORT_1.fastq.gz"
lr2 = sunbeam_output_dir / "qc" / "01_cutadapt" / "SHORT_2.fastq.gz"
sr1 = sunbeam_output_dir / "qc" / "01_cutadapt" / "LONG_1.fastq.gz"
sr2 = sunbeam_output_dir / "qc" / "01_cutadapt" / "LONG_2.fastq.gz"
config_str = f"qc: {{cutadapt_opts: ''}}"
sp.check_output(
[
"sunbeam",
"config",
"modify",
"-i",
"-s",
config_str,
f"{output_dir / 'sunbeam_config.yml'}",
]
)
sp.check_output(
[
"sunbeam",
"run",
"--profile",
f"{output_dir}",
"--notemp",
"--allowed-rules=adapter_removal_paired",
"--rerun-triggers=input",
f"{lr1}",
f"{lr2}",
f"{sr1}",
f"{sr2}",
]
)
tests/unit/rules/test_adapter_removal_paired.py:137:
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
input = None, capture_output = False, timeout = None, check = True popenargs = (['sunbeam', 'run', '--profile', '/tmp/tmpp128vh45/rules', '--notemp', '--allowed-rules=adapter_removal_paired', ...],) kwargs = {'stdout': -1} process = <Popen: returncode: 1 args: ['sunbeam', 'run', '--profile', '/tmp/tmpp128vh4...> stdout = b'Running: snakemake --snakefile /home/parallels/Downloads/sunbeam-4.2.0/workflow/Snakefile --conda-prefix /home/paral...s/sunbeam_output/qc/01_cutadapt/LONG_1.fastq.gz /tmp/tmpp128vh45/rules/sunbeam_output/qc/01_cutadapt/LONG_2.fastq.gz\n' stderr = None, retcode = 1
def run(*popenargs,
input=None, capture_output=False, timeout=None, check=False, **kwargs):
"""Run command with arguments and return a CompletedProcess instance.
The returned instance will have attributes args, returncode, stdout and
stderr. By default, stdout and stderr are not captured, and those attributes
will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them,
or pass capture_output=True to capture both.
If check is True and the exit code was non-zero, it raises a
CalledProcessError. The CalledProcessError object will have the return code
in the returncode attribute, and output & stderr attributes if those streams
were captured.
If timeout is given, and the process takes too long, a TimeoutExpired
exception will be raised.
There is an optional argument "input", allowing you to
pass bytes or a string to the subprocess's stdin. If you use this argument
you may not also use the Popen constructor's "stdin" argument, as
it will be used internally.
By default, all communication is in bytes, and therefore any "input" should
be bytes, and the stdout and stderr will be bytes. If in text mode, any
"input" should be a string, and stdout and stderr will be strings decoded
according to locale encoding, or by "encoding" if set. Text mode is
triggered by setting any of text, encoding, errors or universal_newlines.
The other arguments are the same as for the Popen constructor.
"""
if input is not None:
if kwargs.get('stdin') is not None:
raise ValueError('stdin and input arguments may not both be used.')
kwargs['stdin'] = PIPE
if capture_output:
if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
raise ValueError('stdout and stderr arguments may not be used '
'with capture_output.')
kwargs['stdout'] = PIPE
kwargs['stderr'] = PIPE
with Popen(*popenargs, **kwargs) as process:
try:
stdout, stderr = process.communicate(input, timeout=timeout)
except TimeoutExpired as exc:
process.kill()
if _mswindows:
# Windows accumulates the output in a single blocking
# read() call run on child threads, with the timeout
# being done in a join() on those threads. communicate()
# _after_ kill() is required to collect that and add it
# to the exception.
exc.stdout, exc.stderr = process.communicate()
else:
# POSIX _communicate already populated the output so
# far into the TimeoutExpired exception.
process.wait()
raise
except: # Including KeyboardInterrupt, communicate handled that.
process.kill()
# We don't call process.wait() as .__exit__ does that for us.
raise
retcode = process.poll()
if check and retcode:
raise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
E subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/tmp/tmpp128vh45/rules', '--notemp', '--allowed-rules=adapter_removal_paired', '--rerun-triggers=input', '/tmp/tmpp128vh45/rules/sunbeam_output/qc/01_cutadapt/SHORT_1.fastq.gz', '/tmp/tmpp128vh45/rules/sunbeam_output/qc/01_cutadapt/SHORT_2.fastq.gz', '/tmp/tmpp128vh45/rules/sunbeam_output/qc/01_cutadapt/LONG_1.fastq.gz', '/tmp/tmpp128vh45/rules/sunbeam_output/qc/01_cutadapt/LONG_2.fastq.gz']' returned non-zero exit status 1.
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:571: CalledProcessError ---------------------------- Captured stderr setup ----------------------------- Creating project folder at /tmp/tmpp128vh45/rules... Guessing sample name format from files in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads... Best guess: {sample}R{rp}.fastq.gz Found 2 samples in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads. New sample list written to /tmp/tmpp128vh45/rules/samples.csv New config file written to /tmp/tmpp128vh45/rules/sunbeam_config.yml New profile file written to /tmp/tmpp128vh45/rules/config.yaml ----------------------------- Captured stderr call ----------------------------- Using profile /tmp/tmpp128vh45/rules for setting default command line arguments. Collecting host/contaminant genomes... done. Building DAG of jobs... Creating conda environment workflow/envs/cutadapt.yml... Downloading and installing remote packages. CreateCondaEnvironmentException: Could not create conda environment from /home/parallels/Downloads/sunbeam-4.2.0/workflow/rules/../envs/cutadapt.yml: Command: conda env create --quiet --file "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/7b646d5e9a2b7bcc5e4ecd359bc80878.yaml" --prefix "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/7b646d5e9a2b7bcc5e4ecd359bc80878_" Output: Channels:
- bioconda
- defaults Platform: linux-aarch64 Collecting package metadata (repodata.json): ...working... done Solving environment: ...working... failed
PackagesNotFoundError: The following packages are not available from current channels:
- cutadapt
Current channels:
- https://conda.anaconda.org/bioconda/linux-aarch64
- https://repo.anaconda.com/pkgs/main/linux-aarch64
- https://repo.anaconda.com/pkgs/r/linux-aarch64
To search for alternate channels that may provide the conda package you're looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
______________________________ test_align_to_host ______________________________
setup = PosixPath('/tmp/tmp5zaonoe0/rules')
def test_align_to_host(setup):
output_dir = setup
sunbeam_output_dir = output_dir / "sunbeam_output"
lhuman = (
sunbeam_output_dir / "qc" / "decontam" / "intermediates" / "human" / "LONG.sam"
)
lphix = (
sunbeam_output_dir
/ "qc"
/ "decontam"
/ "intermediates"
/ "phix174"
/ "LONG.sam"
)
shuman = (
sunbeam_output_dir / "qc" / "decontam" / "intermediates" / "human" / "SHORT.sam"
)
sphix = (
sunbeam_output_dir
/ "qc"
/ "decontam"
/ "intermediates"
/ "phix174"
/ "SHORT.sam"
)
sp.check_output(
[
"sunbeam",
"run",
"--profile",
f"{output_dir}",
"--notemp",
"--allowed-rules=align_to_host",
"--rerun-triggers=input",
f"{lhuman}",
f"{lphix}",
f"{shuman}",
f"{sphix}",
]
)
tests/unit/rules/test_align_to_host.py:55:
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
input = None, capture_output = False, timeout = None, check = True popenargs = (['sunbeam', 'run', '--profile', '/tmp/tmp5zaonoe0/rules', '--notemp', '--allowed-rules=align_to_host', ...],) kwargs = {'stdout': -1} process = <Popen: returncode: 1 args: ['sunbeam', 'run', '--profile', '/tmp/tmp5zaonoe...> stdout = b'Running: snakemake --snakefile /home/parallels/Downloads/sunbeam-4.2.0/workflow/Snakefile --conda-prefix /home/paral...ntam/intermediates/human/SHORT.sam /tmp/tmp5zaonoe0/rules/sunbeam_output/qc/decontam/intermediates/phix174/SHORT.sam\n' stderr = None, retcode = 1
def run(*popenargs,
input=None, capture_output=False, timeout=None, check=False, **kwargs):
"""Run command with arguments and return a CompletedProcess instance.
The returned instance will have attributes args, returncode, stdout and
stderr. By default, stdout and stderr are not captured, and those attributes
will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them,
or pass capture_output=True to capture both.
If check is True and the exit code was non-zero, it raises a
CalledProcessError. The CalledProcessError object will have the return code
in the returncode attribute, and output & stderr attributes if those streams
were captured.
If timeout is given, and the process takes too long, a TimeoutExpired
exception will be raised.
There is an optional argument "input", allowing you to
pass bytes or a string to the subprocess's stdin. If you use this argument
you may not also use the Popen constructor's "stdin" argument, as
it will be used internally.
By default, all communication is in bytes, and therefore any "input" should
be bytes, and the stdout and stderr will be bytes. If in text mode, any
"input" should be a string, and stdout and stderr will be strings decoded
according to locale encoding, or by "encoding" if set. Text mode is
triggered by setting any of text, encoding, errors or universal_newlines.
The other arguments are the same as for the Popen constructor.
"""
if input is not None:
if kwargs.get('stdin') is not None:
raise ValueError('stdin and input arguments may not both be used.')
kwargs['stdin'] = PIPE
if capture_output:
if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
raise ValueError('stdout and stderr arguments may not be used '
'with capture_output.')
kwargs['stdout'] = PIPE
kwargs['stderr'] = PIPE
with Popen(*popenargs, **kwargs) as process:
try:
stdout, stderr = process.communicate(input, timeout=timeout)
except TimeoutExpired as exc:
process.kill()
if _mswindows:
# Windows accumulates the output in a single blocking
# read() call run on child threads, with the timeout
# being done in a join() on those threads. communicate()
# _after_ kill() is required to collect that and add it
# to the exception.
exc.stdout, exc.stderr = process.communicate()
else:
# POSIX _communicate already populated the output so
# far into the TimeoutExpired exception.
process.wait()
raise
except: # Including KeyboardInterrupt, communicate handled that.
process.kill()
# We don't call process.wait() as .__exit__ does that for us.
raise
retcode = process.poll()
if check and retcode:
raise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
E subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/tmp/tmp5zaonoe0/rules', '--notemp', '--allowed-rules=align_to_host', '--rerun-triggers=input', '/tmp/tmp5zaonoe0/rules/sunbeam_output/qc/decontam/intermediates/human/LONG.sam', '/tmp/tmp5zaonoe0/rules/sunbeam_output/qc/decontam/intermediates/phix174/LONG.sam', '/tmp/tmp5zaonoe0/rules/sunbeam_output/qc/decontam/intermediates/human/SHORT.sam', '/tmp/tmp5zaonoe0/rules/sunbeam_output/qc/decontam/intermediates/phix174/SHORT.sam']' returned non-zero exit status 1.
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:571: CalledProcessError ---------------------------- Captured stderr setup ----------------------------- Creating project folder at /tmp/tmp5zaonoe0/rules... Guessing sample name format from files in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads... Best guess: {sample}R{rp}.fastq.gz Found 2 samples in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads. New sample list written to /tmp/tmp5zaonoe0/rules/samples.csv New config file written to /tmp/tmp5zaonoe0/rules/sunbeam_config.yml New profile file written to /tmp/tmp5zaonoe0/rules/config.yaml ----------------------------- Captured stderr call ----------------------------- Using profile /tmp/tmp5zaonoe0/rules for setting default command line arguments. Collecting host/contaminant genomes... done. Building DAG of jobs... Creating conda environment workflow/envs/qc.yml... Downloading and installing remote packages. CreateCondaEnvironmentException: Could not create conda environment from /home/parallels/Downloads/sunbeam-4.2.0/workflow/rules/../envs/qc.yml: Command: conda env create --quiet --file "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/fa41a57fae02b20ea8cb3491c688257f.yaml" --prefix "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/fa41a57fae02b20ea8cb3491c688257f_" Output: Channels:
- bioconda
- conda-forge
- defaults Platform: linux-aarch64 Collecting package metadata (repodata.json): ...working... done Solving environment: ...working... failed
PackagesNotFoundError: The following packages are not available from current channels:
- bwa
Current channels:
- https://conda.anaconda.org/bioconda/linux-aarch64
- https://conda.anaconda.org/conda-forge/linux-aarch64
- https://repo.anaconda.com/pkgs/main/linux-aarch64
- https://repo.anaconda.com/pkgs/r/linux-aarch64
To search for alternate channels that may provide the conda package you're looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
____________________________ test_build_host_index _____________________________
setup = PosixPath('/tmp/tmpadfszsh4/rules')
def test_build_host_index(setup):
output_dir = setup
sunbeam_output_dir = output_dir / "sunbeam_output"
exts = ["amb", "ann", "bwt", "pac", "sa"]
human = [test_dir / "data" / "hosts" / f"human.fasta.{ext}" for ext in exts]
human_copy = [
test_dir / "data" / "hosts" / f"human_copy.fasta.{ext}" for ext in exts
]
phix = [test_dir / "data" / "hosts" / f"phix174.fasta.{ext}" for ext in exts]
args = [
"sunbeam",
"run",
"--profile",
f"{output_dir}",
"--notemp",
"--allowed-rules=build_host_index",
"--rerun-triggers=input",
]
args += human
args += human_copy
args += phix
sp.check_output(args)
tests/unit/rules/test_build_host_index.py:47:
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
input = None, capture_output = False, timeout = None, check = True popenargs = (['sunbeam', 'run', '--profile', '/tmp/tmpadfszsh4/rules', '--notemp', '--allowed-rules=build_host_index', ...],) kwargs = {'stdout': -1} process = <Popen: returncode: 1 args: ['sunbeam', 'run', '--profile', '/tmp/tmpadfszsh...> stdout = b'Running: snakemake --snakefile /home/parallels/Downloads/sunbeam-4.2.0/workflow/Snakefile --conda-prefix /home/paral...m-4.2.0/tests/data/hosts/phix174.fasta.pac /home/parallels/Downloads/sunbeam-4.2.0/tests/data/hosts/phix174.fasta.sa\n' stderr = None, retcode = 1
def run(*popenargs,
input=None, capture_output=False, timeout=None, check=False, **kwargs):
"""Run command with arguments and return a CompletedProcess instance.
The returned instance will have attributes args, returncode, stdout and
stderr. By default, stdout and stderr are not captured, and those attributes
will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them,
or pass capture_output=True to capture both.
If check is True and the exit code was non-zero, it raises a
CalledProcessError. The CalledProcessError object will have the return code
in the returncode attribute, and output & stderr attributes if those streams
were captured.
If timeout is given, and the process takes too long, a TimeoutExpired
exception will be raised.
There is an optional argument "input", allowing you to
pass bytes or a string to the subprocess's stdin. If you use this argument
you may not also use the Popen constructor's "stdin" argument, as
it will be used internally.
By default, all communication is in bytes, and therefore any "input" should
be bytes, and the stdout and stderr will be bytes. If in text mode, any
"input" should be a string, and stdout and stderr will be strings decoded
according to locale encoding, or by "encoding" if set. Text mode is
triggered by setting any of text, encoding, errors or universal_newlines.
The other arguments are the same as for the Popen constructor.
"""
if input is not None:
if kwargs.get('stdin') is not None:
raise ValueError('stdin and input arguments may not both be used.')
kwargs['stdin'] = PIPE
if capture_output:
if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
raise ValueError('stdout and stderr arguments may not be used '
'with capture_output.')
kwargs['stdout'] = PIPE
kwargs['stderr'] = PIPE
with Popen(*popenargs, **kwargs) as process:
try:
stdout, stderr = process.communicate(input, timeout=timeout)
except TimeoutExpired as exc:
process.kill()
if _mswindows:
# Windows accumulates the output in a single blocking
# read() call run on child threads, with the timeout
# being done in a join() on those threads. communicate()
# _after_ kill() is required to collect that and add it
# to the exception.
exc.stdout, exc.stderr = process.communicate()
else:
# POSIX _communicate already populated the output so
# far into the TimeoutExpired exception.
process.wait()
raise
except: # Including KeyboardInterrupt, communicate handled that.
process.kill()
# We don't call process.wait() as .__exit__ does that for us.
raise
retcode = process.poll()
if check and retcode:
raise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
E subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/tmp/tmpadfszsh4/rules', '--notemp', '--allowed-rules=build_host_index', '--rerun-triggers=input', PosixPath('/home/parallels/Downloads/sunbeam-4.2.0/tests/data/hosts/human.fasta.amb'), PosixPath('/home/parallels/Downloads/sunbeam-4.2.0/tests/data/hosts/human.fasta.ann'), PosixPath('/home/parallels/Downloads/sunbeam-4.2.0/tests/data/hosts/human.fasta.bwt'), PosixPath('/home/parallels/Downloads/sunbeam-4.2.0/tests/data/hosts/human.fasta.pac'), PosixPath('/home/parallels/Downloads/sunbeam-4.2.0/tests/data/hosts/human.fasta.sa'), PosixPath('/home/parallels/Downloads/sunbeam-4.2.0/tests/data/hosts/human_copy.fasta.amb'), PosixPath('/home/parallels/Downloads/sunbeam-4.2.0/tests/data/hosts/human_copy.fasta.ann'), PosixPath('/home/parallels/Downloads/sunbeam-4.2.0/tests/data/hosts/human_copy.fasta.bwt'), PosixPath('/home/parallels/Downloads/sunbeam-4.2.0/tests/data/hosts/human_copy.fasta.pac'), PosixPath('/home/parallels/Downloads/sunbeam-4.2.0/tests/data/hosts/human_copy.fasta.sa'), PosixPath('/home/parallels/Downloads/sunbeam-4.2.0/tests/data/hosts/phix174.fasta.amb'), PosixPath('/home/parallels/Downloads/sunbeam-4.2.0/tests/data/hosts/phix174.fasta.ann'), PosixPath('/home/parallels/Downloads/sunbeam-4.2.0/tests/data/hosts/phix174.fasta.bwt'), PosixPath('/home/parallels/Downloads/sunbeam-4.2.0/tests/data/hosts/phix174.fasta.pac'), PosixPath('/home/parallels/Downloads/sunbeam-4.2.0/tests/data/hosts/phix174.fasta.sa')]' returned non-zero exit status 1.
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:571: CalledProcessError ---------------------------- Captured stderr setup ----------------------------- Creating project folder at /tmp/tmpadfszsh4/rules... Guessing sample name format from files in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads... Best guess: {sample}R{rp}.fastq.gz Found 2 samples in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads. New sample list written to /tmp/tmpadfszsh4/rules/samples.csv New config file written to /tmp/tmpadfszsh4/rules/sunbeam_config.yml New profile file written to /tmp/tmpadfszsh4/rules/config.yaml ----------------------------- Captured stderr call ----------------------------- Using profile /tmp/tmpadfszsh4/rules for setting default command line arguments. Collecting host/contaminant genomes... done. Building DAG of jobs... Creating conda environment workflow/envs/qc.yml... Downloading and installing remote packages. CreateCondaEnvironmentException: Could not create conda environment from /home/parallels/Downloads/sunbeam-4.2.0/workflow/rules/../envs/qc.yml: Command: conda env create --quiet --file "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/fa41a57fae02b20ea8cb3491c688257f.yaml" --prefix "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/fa41a57fae02b20ea8cb3491c688257f_" Output: Channels:
- bioconda
- conda-forge
- defaults Platform: linux-aarch64 Collecting package metadata (repodata.json): ...working... done Solving environment: ...working... failed
PackagesNotFoundError: The following packages are not available from current channels:
- bwa
Current channels:
- https://conda.anaconda.org/bioconda/linux-aarch64
- https://conda.anaconda.org/conda-forge/linux-aarch64
- https://repo.anaconda.com/pkgs/main/linux-aarch64
- https://repo.anaconda.com/pkgs/r/linux-aarch64
To search for alternate channels that may provide the conda package you're looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
_________________________________ test_fastqc __________________________________
setup = PosixPath('/tmp/tmpgtqqk424/rules')
def test_fastqc(setup):
output_dir = setup
sunbeam_output_dir = output_dir / "sunbeam_output"
lr1 = sunbeam_output_dir / "qc" / "reports" / "LONG_1_fastqc" / "fastqc_data.txt"
lr2 = sunbeam_output_dir / "qc" / "reports" / "LONG_2_fastqc" / "fastqc_data.txt"
sr1 = sunbeam_output_dir / "qc" / "reports" / "SHORT_1_fastqc" / "fastqc_data.txt"
sr2 = sunbeam_output_dir / "qc" / "reports" / "SHORT_2_fastqc" / "fastqc_data.txt"
sp.check_output(
[
"sunbeam",
"run",
"--profile",
f"{output_dir}",
"--notemp",
"--allowed-rules=fastqc",
"--rerun-triggers=input",
f"{lr1}",
f"{lr2}",
f"{sr1}",
f"{sr2}",
]
)
tests/unit/rules/test_fastqc.py:38:
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
input = None, capture_output = False, timeout = None, check = True popenargs = (['sunbeam', 'run', '--profile', '/tmp/tmpgtqqk424/rules', '--notemp', '--allowed-rules=fastqc', ...],) kwargs = {'stdout': -1} process = <Popen: returncode: 1 args: ['sunbeam', 'run', '--profile', '/tmp/tmpgtqqk42...> stdout = b'Running: snakemake --snakefile /home/parallels/Downloads/sunbeam-4.2.0/workflow/Snakefile --conda-prefix /home/paral...ports/SHORT_1_fastqc/fastqc_data.txt /tmp/tmpgtqqk424/rules/sunbeam_output/qc/reports/SHORT_2_fastqc/fastqc_data.txt\n' stderr = None, retcode = 1
def run(*popenargs,
input=None, capture_output=False, timeout=None, check=False, **kwargs):
"""Run command with arguments and return a CompletedProcess instance.
The returned instance will have attributes args, returncode, stdout and
stderr. By default, stdout and stderr are not captured, and those attributes
will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them,
or pass capture_output=True to capture both.
If check is True and the exit code was non-zero, it raises a
CalledProcessError. The CalledProcessError object will have the return code
in the returncode attribute, and output & stderr attributes if those streams
were captured.
If timeout is given, and the process takes too long, a TimeoutExpired
exception will be raised.
There is an optional argument "input", allowing you to
pass bytes or a string to the subprocess's stdin. If you use this argument
you may not also use the Popen constructor's "stdin" argument, as
it will be used internally.
By default, all communication is in bytes, and therefore any "input" should
be bytes, and the stdout and stderr will be bytes. If in text mode, any
"input" should be a string, and stdout and stderr will be strings decoded
according to locale encoding, or by "encoding" if set. Text mode is
triggered by setting any of text, encoding, errors or universal_newlines.
The other arguments are the same as for the Popen constructor.
"""
if input is not None:
if kwargs.get('stdin') is not None:
raise ValueError('stdin and input arguments may not both be used.')
kwargs['stdin'] = PIPE
if capture_output:
if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
raise ValueError('stdout and stderr arguments may not be used '
'with capture_output.')
kwargs['stdout'] = PIPE
kwargs['stderr'] = PIPE
with Popen(*popenargs, **kwargs) as process:
try:
stdout, stderr = process.communicate(input, timeout=timeout)
except TimeoutExpired as exc:
process.kill()
if _mswindows:
# Windows accumulates the output in a single blocking
# read() call run on child threads, with the timeout
# being done in a join() on those threads. communicate()
# _after_ kill() is required to collect that and add it
# to the exception.
exc.stdout, exc.stderr = process.communicate()
else:
# POSIX _communicate already populated the output so
# far into the TimeoutExpired exception.
process.wait()
raise
except: # Including KeyboardInterrupt, communicate handled that.
process.kill()
# We don't call process.wait() as .__exit__ does that for us.
raise
retcode = process.poll()
if check and retcode:
raise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
E subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/tmp/tmpgtqqk424/rules', '--notemp', '--allowed-rules=fastqc', '--rerun-triggers=input', '/tmp/tmpgtqqk424/rules/sunbeam_output/qc/reports/LONG_1_fastqc/fastqc_data.txt', '/tmp/tmpgtqqk424/rules/sunbeam_output/qc/reports/LONG_2_fastqc/fastqc_data.txt', '/tmp/tmpgtqqk424/rules/sunbeam_output/qc/reports/SHORT_1_fastqc/fastqc_data.txt', '/tmp/tmpgtqqk424/rules/sunbeam_output/qc/reports/SHORT_2_fastqc/fastqc_data.txt']' returned non-zero exit status 1.
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:571: CalledProcessError ---------------------------- Captured stderr setup ----------------------------- Creating project folder at /tmp/tmpgtqqk424/rules... Guessing sample name format from files in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads... Best guess: {sample}R{rp}.fastq.gz Found 2 samples in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads. New sample list written to /tmp/tmpgtqqk424/rules/samples.csv New config file written to /tmp/tmpgtqqk424/rules/sunbeam_config.yml New profile file written to /tmp/tmpgtqqk424/rules/config.yaml ----------------------------- Captured stderr call ----------------------------- Using profile /tmp/tmpgtqqk424/rules for setting default command line arguments. Collecting host/contaminant genomes... done. Building DAG of jobs... Creating conda environment workflow/envs/qc.yml... Downloading and installing remote packages. CreateCondaEnvironmentException: Could not create conda environment from /home/parallels/Downloads/sunbeam-4.2.0/workflow/rules/../envs/qc.yml: Command: conda env create --quiet --file "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/fa41a57fae02b20ea8cb3491c688257f.yaml" --prefix "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/fa41a57fae02b20ea8cb3491c688257f_" Output: Channels:
- bioconda
- conda-forge
- defaults Platform: linux-aarch64 Collecting package metadata (repodata.json): ...working... done Solving environment: ...working... failed
PackagesNotFoundError: The following packages are not available from current channels:
- bwa
Current channels:
- https://conda.anaconda.org/bioconda/linux-aarch64
- https://conda.anaconda.org/conda-forge/linux-aarch64
- https://repo.anaconda.com/pkgs/main/linux-aarch64
- https://repo.anaconda.com/pkgs/r/linux-aarch64
To search for alternate channels that may provide the conda package you're looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
______________________________ test_filter_reads _______________________________
setup = PosixPath('/tmp/tmpdps1kadp/rules')
def test_filter_reads(setup):
output_dir = setup
sunbeam_output_dir = output_dir / "sunbeam_output"
lr1 = sunbeam_output_dir / "qc" / "decontam" / "LONG_1.fastq.gz"
lr2 = sunbeam_output_dir / "qc" / "decontam" / "LONG_2.fastq.gz"
ll1 = sunbeam_output_dir / "qc" / "log" / "decontam" / "LONG_1.txt"
ll2 = sunbeam_output_dir / "qc" / "log" / "decontam" / "LONG_2.txt"
sr1 = sunbeam_output_dir / "qc" / "decontam" / "SHORT_1.fastq.gz"
sr2 = sunbeam_output_dir / "qc" / "decontam" / "SHORT_2.fastq.gz"
sl1 = sunbeam_output_dir / "qc" / "log" / "decontam" / "SHORT_1.txt"
sl2 = sunbeam_output_dir / "qc" / "log" / "decontam" / "SHORT_2.txt"
clr1 = sunbeam_output_dir / "qc" / "cleaned" / "LONG_1.fastq.gz"
clr2 = sunbeam_output_dir / "qc" / "cleaned" / "LONG_2.fastq.gz"
csr1 = sunbeam_output_dir / "qc" / "cleaned" / "SHORT_1.fastq.gz"
csr2 = sunbeam_output_dir / "qc" / "cleaned" / "SHORT_2.fastq.gz"
out = sp.check_output(
[
"sunbeam",
"run",
"--profile",
f"{output_dir}",
"--notemp",
"--allowed-rules=filter_reads",
"--rerun-triggers=input",
f"{lr1}",
f"{lr2}",
f"{ll1}",
f"{ll2}",
f"{sr1}",
f"{sr2}",
f"{sl1}",
f"{sl2}",
]
)
tests/unit/rules/test_filter_reads.py:50:
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
input = None, capture_output = False, timeout = None, check = True popenargs = (['sunbeam', 'run', '--profile', '/tmp/tmpdps1kadp/rules', '--notemp', '--allowed-rules=filter_reads', ...],) kwargs = {'stdout': -1} process = <Popen: returncode: 1 args: ['sunbeam', 'run', '--profile', '/tmp/tmpdps1kad...> stdout = b'Running: snakemake --snakefile /home/parallels/Downloads/sunbeam-4.2.0/workflow/Snakefile --conda-prefix /home/paral...p/rules/sunbeam_output/qc/log/decontam/SHORT_1.txt /tmp/tmpdps1kadp/rules/sunbeam_output/qc/log/decontam/SHORT_2.txt\n' stderr = None, retcode = 1
def run(*popenargs,
input=None, capture_output=False, timeout=None, check=False, **kwargs):
"""Run command with arguments and return a CompletedProcess instance.
The returned instance will have attributes args, returncode, stdout and
stderr. By default, stdout and stderr are not captured, and those attributes
will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them,
or pass capture_output=True to capture both.
If check is True and the exit code was non-zero, it raises a
CalledProcessError. The CalledProcessError object will have the return code
in the returncode attribute, and output & stderr attributes if those streams
were captured.
If timeout is given, and the process takes too long, a TimeoutExpired
exception will be raised.
There is an optional argument "input", allowing you to
pass bytes or a string to the subprocess's stdin. If you use this argument
you may not also use the Popen constructor's "stdin" argument, as
it will be used internally.
By default, all communication is in bytes, and therefore any "input" should
be bytes, and the stdout and stderr will be bytes. If in text mode, any
"input" should be a string, and stdout and stderr will be strings decoded
according to locale encoding, or by "encoding" if set. Text mode is
triggered by setting any of text, encoding, errors or universal_newlines.
The other arguments are the same as for the Popen constructor.
"""
if input is not None:
if kwargs.get('stdin') is not None:
raise ValueError('stdin and input arguments may not both be used.')
kwargs['stdin'] = PIPE
if capture_output:
if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
raise ValueError('stdout and stderr arguments may not be used '
'with capture_output.')
kwargs['stdout'] = PIPE
kwargs['stderr'] = PIPE
with Popen(*popenargs, **kwargs) as process:
try:
stdout, stderr = process.communicate(input, timeout=timeout)
except TimeoutExpired as exc:
process.kill()
if _mswindows:
# Windows accumulates the output in a single blocking
# read() call run on child threads, with the timeout
# being done in a join() on those threads. communicate()
# _after_ kill() is required to collect that and add it
# to the exception.
exc.stdout, exc.stderr = process.communicate()
else:
# POSIX _communicate already populated the output so
# far into the TimeoutExpired exception.
process.wait()
raise
except: # Including KeyboardInterrupt, communicate handled that.
process.kill()
# We don't call process.wait() as .__exit__ does that for us.
raise
retcode = process.poll()
if check and retcode:
raise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
E subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/tmp/tmpdps1kadp/rules', '--notemp', '--allowed-rules=filter_reads', '--rerun-triggers=input', '/tmp/tmpdps1kadp/rules/sunbeam_output/qc/decontam/LONG_1.fastq.gz', '/tmp/tmpdps1kadp/rules/sunbeam_output/qc/decontam/LONG_2.fastq.gz', '/tmp/tmpdps1kadp/rules/sunbeam_output/qc/log/decontam/LONG_1.txt', '/tmp/tmpdps1kadp/rules/sunbeam_output/qc/log/decontam/LONG_2.txt', '/tmp/tmpdps1kadp/rules/sunbeam_output/qc/decontam/SHORT_1.fastq.gz', '/tmp/tmpdps1kadp/rules/sunbeam_output/qc/decontam/SHORT_2.fastq.gz', '/tmp/tmpdps1kadp/rules/sunbeam_output/qc/log/decontam/SHORT_1.txt', '/tmp/tmpdps1kadp/rules/sunbeam_output/qc/log/decontam/SHORT_2.txt']' returned non-zero exit status 1.
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:571: CalledProcessError ---------------------------- Captured stderr setup ----------------------------- Creating project folder at /tmp/tmpdps1kadp/rules... Guessing sample name format from files in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads... Best guess: {sample}R{rp}.fastq.gz Found 2 samples in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads. New sample list written to /tmp/tmpdps1kadp/rules/samples.csv New config file written to /tmp/tmpdps1kadp/rules/sunbeam_config.yml New profile file written to /tmp/tmpdps1kadp/rules/config.yaml ----------------------------- Captured stderr call ----------------------------- Using profile /tmp/tmpdps1kadp/rules for setting default command line arguments. Collecting host/contaminant genomes... done. Building DAG of jobs... Creating conda environment workflow/envs/qc.yml... Downloading and installing remote packages. CreateCondaEnvironmentException: Could not create conda environment from /home/parallels/Downloads/sunbeam-4.2.0/workflow/rules/../envs/qc.yml: Command: conda env create --quiet --file "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/fa41a57fae02b20ea8cb3491c688257f.yaml" --prefix "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/fa41a57fae02b20ea8cb3491c688257f_" Output: Channels:
- bioconda
- conda-forge
- defaults Platform: linux-aarch64 Collecting package metadata (repodata.json): ...working... done Solving environment: ...working... failed
PackagesNotFoundError: The following packages are not available from current channels:
- bwa
Current channels:
- https://conda.anaconda.org/bioconda/linux-aarch64
- https://conda.anaconda.org/conda-forge/linux-aarch64
- https://repo.anaconda.com/pkgs/main/linux-aarch64
- https://repo.anaconda.com/pkgs/r/linux-aarch64
To search for alternate channels that may provide the conda package you're looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
___________________________ test_find_low_complexity ___________________________
setup = PosixPath('/tmp/tmptv19g1d8/rules')
def test_find_low_complexity(setup):
output_dir = setup
sunbeam_output_dir = output_dir / "sunbeam_output"
lr = sunbeam_output_dir / "qc" / "log" / "komplexity" / "LONG.filtered_ids"
sr = sunbeam_output_dir / "qc" / "log" / "komplexity" / "SHORT.filtered_ids"
sp.check_output(
[
"sunbeam",
"run",
"--profile",
f"{output_dir}",
"--notemp",
"--allowed-rules=find_low_complexity",
"--rerun-triggers=input",
f"{lr}",
f"{sr}",
]
)
tests/unit/rules/test_find_low_complexity.py:36:
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
input = None, capture_output = False, timeout = None, check = True popenargs = (['sunbeam', 'run', '--profile', '/tmp/tmptv19g1d8/rules', '--notemp', '--allowed-rules=find_low_complexity', ...],) kwargs = {'stdout': -1} process = <Popen: returncode: 1 args: ['sunbeam', 'run', '--profile', '/tmp/tmptv19g1d...> stdout = b'Running: snakemake --snakefile /home/parallels/Downloads/sunbeam-4.2.0/workflow/Snakefile --conda-prefix /home/paral...utput/qc/log/komplexity/LONG.filtered_ids /tmp/tmptv19g1d8/rules/sunbeam_output/qc/log/komplexity/SHORT.filtered_ids\n' stderr = None, retcode = 1
def run(*popenargs,
input=None, capture_output=False, timeout=None, check=False, **kwargs):
"""Run command with arguments and return a CompletedProcess instance.
The returned instance will have attributes args, returncode, stdout and
stderr. By default, stdout and stderr are not captured, and those attributes
will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them,
or pass capture_output=True to capture both.
If check is True and the exit code was non-zero, it raises a
CalledProcessError. The CalledProcessError object will have the return code
in the returncode attribute, and output & stderr attributes if those streams
were captured.
If timeout is given, and the process takes too long, a TimeoutExpired
exception will be raised.
There is an optional argument "input", allowing you to
pass bytes or a string to the subprocess's stdin. If you use this argument
you may not also use the Popen constructor's "stdin" argument, as
it will be used internally.
By default, all communication is in bytes, and therefore any "input" should
be bytes, and the stdout and stderr will be bytes. If in text mode, any
"input" should be a string, and stdout and stderr will be strings decoded
according to locale encoding, or by "encoding" if set. Text mode is
triggered by setting any of text, encoding, errors or universal_newlines.
The other arguments are the same as for the Popen constructor.
"""
if input is not None:
if kwargs.get('stdin') is not None:
raise ValueError('stdin and input arguments may not both be used.')
kwargs['stdin'] = PIPE
if capture_output:
if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
raise ValueError('stdout and stderr arguments may not be used '
'with capture_output.')
kwargs['stdout'] = PIPE
kwargs['stderr'] = PIPE
with Popen(*popenargs, **kwargs) as process:
try:
stdout, stderr = process.communicate(input, timeout=timeout)
except TimeoutExpired as exc:
process.kill()
if _mswindows:
# Windows accumulates the output in a single blocking
# read() call run on child threads, with the timeout
# being done in a join() on those threads. communicate()
# _after_ kill() is required to collect that and add it
# to the exception.
exc.stdout, exc.stderr = process.communicate()
else:
# POSIX _communicate already populated the output so
# far into the TimeoutExpired exception.
process.wait()
raise
except: # Including KeyboardInterrupt, communicate handled that.
process.kill()
# We don't call process.wait() as .__exit__ does that for us.
raise
retcode = process.poll()
if check and retcode:
raise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
E subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/tmp/tmptv19g1d8/rules', '--notemp', '--allowed-rules=find_low_complexity', '--rerun-triggers=input', '/tmp/tmptv19g1d8/rules/sunbeam_output/qc/log/komplexity/LONG.filtered_ids', '/tmp/tmptv19g1d8/rules/sunbeam_output/qc/log/komplexity/SHORT.filtered_ids']' returned non-zero exit status 1.
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:571: CalledProcessError ---------------------------- Captured stderr setup ----------------------------- Creating project folder at /tmp/tmptv19g1d8/rules... Guessing sample name format from files in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads... Best guess: {sample}R{rp}.fastq.gz Found 2 samples in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads. New sample list written to /tmp/tmptv19g1d8/rules/samples.csv New config file written to /tmp/tmptv19g1d8/rules/sunbeam_config.yml New profile file written to /tmp/tmptv19g1d8/rules/config.yaml ----------------------------- Captured stderr call ----------------------------- Using profile /tmp/tmptv19g1d8/rules for setting default command line arguments. Collecting host/contaminant genomes... done. Building DAG of jobs... Creating conda environment workflow/envs/komplexity.yml... Downloading and installing remote packages. CreateCondaEnvironmentException: Could not create conda environment from /home/parallels/Downloads/sunbeam-4.2.0/workflow/rules/../envs/komplexity.yml: Command: conda env create --quiet --file "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/7eacad7d74ca3b7ec7a8932998ed90e4.yaml" --prefix "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/7eacad7d74ca3b7ec7a8932998ed90e4_" Output: Channels:
- eclarke
- conda-forge
- defaults Platform: linux-aarch64 Collecting package metadata (repodata.json): ...working... done Solving environment: ...working... failed
PackagesNotFoundError: The following packages are not available from current channels:
- komplexity
Current channels:
- https://conda.anaconda.org/eclarke/linux-aarch64
- https://conda.anaconda.org/conda-forge/linux-aarch64
- https://repo.anaconda.com/pkgs/main/linux-aarch64
- https://repo.anaconda.com/pkgs/r/linux-aarch64
To search for alternate channels that may provide the conda package you're looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
___________________________ test_trimmomatic_paired ____________________________
setup = PosixPath('/tmp/tmpd7ekeiou/rules')
def test_trimmomatic_paired(setup):
output_dir = setup
sunbeam_output_dir = output_dir / "sunbeam_output"
lr1 = sunbeam_output_dir / "qc" / "02_trimmomatic" / "LONG_1.fastq.gz"
lr2 = sunbeam_output_dir / "qc" / "02_trimmomatic" / "LONG_2.fastq.gz"
sr1 = sunbeam_output_dir / "qc" / "02_trimmomatic" / "SHORT_1.fastq.gz"
sr2 = sunbeam_output_dir / "qc" / "02_trimmomatic" / "SHORT_2.fastq.gz"
lur1 = (
sunbeam_output_dir
/ "qc"
/ "02_trimmomatic"
/ "unpaired"
/ "LONG_1_unpaired.fastq.gz"
)
lur2 = (
sunbeam_output_dir
/ "qc"
/ "02_trimmomatic"
/ "unpaired"
/ "LONG_2_unpaired.fastq.gz"
)
sur1 = (
sunbeam_output_dir
/ "qc"
/ "02_trimmomatic"
/ "unpaired"
/ "SHORT_1_unpaired.fastq.gz"
)
sur2 = (
sunbeam_output_dir
/ "qc"
/ "02_trimmomatic"
/ "unpaired"
/ "SHORT_2_unpaired.fastq.gz"
)
sp.check_output(
[
"sunbeam",
"run",
"--profile",
f"{output_dir}",
"--notemp",
"--allowed-rules=trimmomatic_paired",
"--rerun-triggers=input",
f"{lr1}",
f"{lr2}",
f"{lur1}",
f"{lur2}",
f"{sr1}",
f"{sr2}",
f"{sur1}",
f"{sur2}",
]
)
tests/unit/rules/test_trimmomatic_paired.py:66:
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:466: in check_output return run(*popenargs, stdout=PIPE, timeout=timeout, check=True,
input = None, capture_output = False, timeout = None, check = True popenargs = (['sunbeam', 'run', '--profile', '/tmp/tmpd7ekeiou/rules', '--notemp', '--allowed-rules=trimmomatic_paired', ...],) kwargs = {'stdout': -1} process = <Popen: returncode: 1 args: ['sunbeam', 'run', '--profile', '/tmp/tmpd7ekeio...> stdout = b'Running: snakemake --snakefile /home/parallels/Downloads/sunbeam-4.2.0/workflow/Snakefile --conda-prefix /home/paral...SHORT_1_unpaired.fastq.gz /tmp/tmpd7ekeiou/rules/sunbeam_output/qc/02_trimmomatic/unpaired/SHORT_2_unpaired.fastq.gz\n' stderr = None, retcode = 1
def run(*popenargs,
input=None, capture_output=False, timeout=None, check=False, **kwargs):
"""Run command with arguments and return a CompletedProcess instance.
The returned instance will have attributes args, returncode, stdout and
stderr. By default, stdout and stderr are not captured, and those attributes
will be None. Pass stdout=PIPE and/or stderr=PIPE in order to capture them,
or pass capture_output=True to capture both.
If check is True and the exit code was non-zero, it raises a
CalledProcessError. The CalledProcessError object will have the return code
in the returncode attribute, and output & stderr attributes if those streams
were captured.
If timeout is given, and the process takes too long, a TimeoutExpired
exception will be raised.
There is an optional argument "input", allowing you to
pass bytes or a string to the subprocess's stdin. If you use this argument
you may not also use the Popen constructor's "stdin" argument, as
it will be used internally.
By default, all communication is in bytes, and therefore any "input" should
be bytes, and the stdout and stderr will be bytes. If in text mode, any
"input" should be a string, and stdout and stderr will be strings decoded
according to locale encoding, or by "encoding" if set. Text mode is
triggered by setting any of text, encoding, errors or universal_newlines.
The other arguments are the same as for the Popen constructor.
"""
if input is not None:
if kwargs.get('stdin') is not None:
raise ValueError('stdin and input arguments may not both be used.')
kwargs['stdin'] = PIPE
if capture_output:
if kwargs.get('stdout') is not None or kwargs.get('stderr') is not None:
raise ValueError('stdout and stderr arguments may not be used '
'with capture_output.')
kwargs['stdout'] = PIPE
kwargs['stderr'] = PIPE
with Popen(*popenargs, **kwargs) as process:
try:
stdout, stderr = process.communicate(input, timeout=timeout)
except TimeoutExpired as exc:
process.kill()
if _mswindows:
# Windows accumulates the output in a single blocking
# read() call run on child threads, with the timeout
# being done in a join() on those threads. communicate()
# _after_ kill() is required to collect that and add it
# to the exception.
exc.stdout, exc.stderr = process.communicate()
else:
# POSIX _communicate already populated the output so
# far into the TimeoutExpired exception.
process.wait()
raise
except: # Including KeyboardInterrupt, communicate handled that.
process.kill()
# We don't call process.wait() as .__exit__ does that for us.
raise
retcode = process.poll()
if check and retcode:
raise CalledProcessError(retcode, process.args,
output=stdout, stderr=stderr)
E subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/tmp/tmpd7ekeiou/rules', '--notemp', '--allowed-rules=trimmomatic_paired', '--rerun-triggers=input', '/tmp/tmpd7ekeiou/rules/sunbeam_output/qc/02_trimmomatic/LONG_1.fastq.gz', '/tmp/tmpd7ekeiou/rules/sunbeam_output/qc/02_trimmomatic/LONG_2.fastq.gz', '/tmp/tmpd7ekeiou/rules/sunbeam_output/qc/02_trimmomatic/unpaired/LONG_1_unpaired.fastq.gz', '/tmp/tmpd7ekeiou/rules/sunbeam_output/qc/02_trimmomatic/unpaired/LONG_2_unpaired.fastq.gz', '/tmp/tmpd7ekeiou/rules/sunbeam_output/qc/02_trimmomatic/SHORT_1.fastq.gz', '/tmp/tmpd7ekeiou/rules/sunbeam_output/qc/02_trimmomatic/SHORT_2.fastq.gz', '/tmp/tmpd7ekeiou/rules/sunbeam_output/qc/02_trimmomatic/unpaired/SHORT_1_unpaired.fastq.gz', '/tmp/tmpd7ekeiou/rules/sunbeam_output/qc/02_trimmomatic/unpaired/SHORT_2_unpaired.fastq.gz']' returned non-zero exit status 1.
../../miniconda3/envs/sunbeam4.1.0/lib/python3.12/subprocess.py:571: CalledProcessError ---------------------------- Captured stderr setup ----------------------------- Creating project folder at /tmp/tmpd7ekeiou/rules... Guessing sample name format from files in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads... Best guess: {sample}R{rp}.fastq.gz Found 2 samples in /home/parallels/Downloads/sunbeam-4.2.0/tests/data/reads. New sample list written to /tmp/tmpd7ekeiou/rules/samples.csv New config file written to /tmp/tmpd7ekeiou/rules/sunbeam_config.yml New profile file written to /tmp/tmpd7ekeiou/rules/config.yaml ----------------------------- Captured stderr call ----------------------------- Using profile /tmp/tmpd7ekeiou/rules for setting default command line arguments. Collecting host/contaminant genomes... done. Building DAG of jobs... Creating conda environment workflow/envs/qc.yml... Downloading and installing remote packages. CreateCondaEnvironmentException: Could not create conda environment from /home/parallels/Downloads/sunbeam-4.2.0/workflow/rules/../envs/qc.yml: Command: conda env create --quiet --file "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/fa41a57fae02b20ea8cb3491c688257f.yaml" --prefix "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/fa41a57fae02b20ea8cb3491c688257f_" Output: Channels:
- bioconda
- conda-forge
- defaults Platform: linux-aarch64 Collecting package metadata (repodata.json): ...working... done Solving environment: ...working... failed
PackagesNotFoundError: The following packages are not available from current channels:
- bwa
Current channels:
- https://conda.anaconda.org/bioconda/linux-aarch64
- https://conda.anaconda.org/conda-forge/linux-aarch64
- https://repo.anaconda.com/pkgs/main/linux-aarch64
- https://repo.anaconda.com/pkgs/r/linux-aarch64
To search for alternate channels that may provide the conda package you're looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
=========================== short test summary info ============================ FAILED tests/e2e/test_sunbeam_run.py::test_sunbeam_run_all - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/e2e/test_sunbeam_run.py::test_sunbeam_run_all_dirty - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/e2e/test_sunbeam_run.py::test_sunbeam_run_all_no_host - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/e2e/test_sunbeam_run.py::test_sunbeam_run_all_single_end - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/e2e/test_sunbeam_run.py::test_sunbeam_run_all_space_in_header - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/unit/rules/test_adapter_removal_paired.py::test_adapter_removal_paired - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/unit/rules/test_adapter_removal_paired.py::test_adapater_removal_paired_no_adapters - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/unit/rules/test_adapter_removal_paired.py::test_adapater_removal_paired_no_opts - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/unit/rules/test_align_to_host.py::test_align_to_host - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/unit/rules/test_build_host_index.py::test_build_host_index - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/unit/rules/test_fastqc.py::test_fastqc - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/unit/rules/test_filter_reads.py::test_filter_reads - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/unit/rules/test_find_low_complexity.py::test_find_low_complexity - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t... FAILED tests/unit/rules/test_trimmomatic_paired.py::test_trimmomatic_paired - subprocess.CalledProcessError: Command '['sunbeam', 'run', '--profile', '/t...
sunbeam run --configfile /home/parallels/1882_NOV/sunbeam_config.yml --cores all --use-conda Running: snakemake --snakefile /home/parallels/Downloads/sunbeam-4.2.0/workflow/Snakefile --conda-prefix /home/parallels/Downloads/sunbeam-4.2.0/.snakemake --conda-frontend conda --configfile /home/parallels/1882_NOV/sunbeam_config.yml --cores all --use-conda Collecting host/contaminant genomes... done. Building DAG of jobs... Creating conda environment ../Downloads/sunbeam-4.2.0/workflow/envs/komplexity.yml... Downloading and installing remote packages. CreateCondaEnvironmentException: Could not create conda environment from /home/parallels/Downloads/sunbeam-4.2.0/workflow/rules/../envs/komplexity.yml: Command: conda env create --quiet --file "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/7eacad7d74ca3b7ec7a8932998ed90e4_.yaml" --prefix "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/7eacad7d74ca3b7ec7a8932998ed90e4_" Output: Channels:
- eclarke
- conda-forge
- defaults Platform: linux-aarch64 Collecting package metadata (repodata.json): ...working... done Solving environment: ...working... failed
PackagesNotFoundError: The following packages are not available from current channels:
- komplexity
Current channels:
- https://conda.anaconda.org/eclarke/linux-aarch64
- https://conda.anaconda.org/conda-forge/linux-aarch64
- https://repo.anaconda.com/pkgs/main/linux-aarch64
- https://repo.anaconda.com/pkgs/r/linux-aarch64
To search for alternate channels that may provide the conda package you're looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
(sunbeam4.1.0) parallels@ubuntu-linux-22-04-02-desktop:~/1882_NOV$ ^C (sunbeam4.1.0) parallels@ubuntu-linux-22-04-02-desktop:~/1882_NOV$ sunbeam run --configfile /home/parallels/1882_NOV/sunbeam_config.yml --cores all --use-conda Running: snakemake --snakefile /home/parallels/Downloads/sunbeam-4.2.0/workflow/Snakefile --conda-prefix /home/parallels/Downloads/sunbeam-4.2.0/.snakemake --conda-frontend conda --configfile /home/parallels/1882_NOV/sunbeam_config.yml --cores all --use-conda Collecting host/contaminant genomes... done. Building DAG of jobs... Creating conda environment ../Downloads/sunbeam-4.2.0/workflow/envs/cutadapt.yml... Downloading and installing remote packages. CreateCondaEnvironmentException: Could not create conda environment from /home/parallels/Downloads/sunbeam-4.2.0/workflow/rules/../envs/cutadapt.yml: Command: conda env create --quiet --file "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/7b646d5e9a2b7bcc5e4ecd359bc80878_.yaml" --prefix "/home/parallels/Downloads/sunbeam-4.2.0/.snakemake/7b646d5e9a2b7bcc5e4ecd359bc80878_" Output: Retrieving notices: ...working... done Channels:
- bioconda
- defaults Platform: linux-aarch64 Collecting package metadata (repodata.json): ...working... done Solving environment: ...working... failed
PackagesNotFoundError: The following packages are not available from current channels:
- cutadapt
Current channels:
- https://conda.anaconda.org/bioconda/linux-aarch64
- https://repo.anaconda.com/pkgs/main/linux-aarch64
- https://repo.anaconda.com/pkgs/r/linux-aarch64
To search for alternate channels that may provide the conda package you're looking for, navigate to
https://anaconda.org
and use the search bar at the top of the page.
I installed cutadapt, komplexity, bwa several times.
OK it looks like conda is the problem here, all your workflow environments are failing to solve. But you were able to create the main sunbeam environment so it's possibly an issue with the interaction between snakemake and conda. Just to be sure, can you try running conda env create -f workflow/envs/komplexity.yml -n komplexity (and then you can remove that env if it's created successfully with conda env remove -n komplexity)? If that works then you might also try installing mamba into the base environment and then running sunbeam with --mamba.
Hi @mabouelk, I'm closing this issue due to inactivity. If you're still trying to use sunbeam and struggling with the conda solver, I'd suggest trying out the latest version of sunbeam which introduced docker images to (optionally) take the place of conda envs. You'd need singularity or apptainer on your cluster to be able to run sunbeam with these containerized environments. If you run into any trouble with that please open a new issue.