sunbeam icon indicating copy to clipboard operation
sunbeam copied to clipboard

virtual linux-parellel

Open mabouelk opened this issue 1 year ago • 8 comments

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) ===================

mabouelk avatar Jan 03 '24 20:01 mabouelk

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?

Ulthran avatar Jan 03 '24 22:01 Ulthran

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.

mabouelk avatar Jan 04 '24 00:01 mabouelk

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?

Ulthran avatar Jan 05 '24 17:01 Ulthran

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: @.***>

mabouelk avatar Jan 05 '24 17:01 mabouelk

Can you please include the full output you get when sunbeam run fails?

Ulthran avatar Jan 05 '24 18:01 Ulthran

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...

mabouelk avatar Jan 05 '24 22:01 mabouelk

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.

mabouelk avatar Jan 05 '24 22:01 mabouelk

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.

Ulthran avatar Jan 08 '24 12:01 Ulthran

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.

Ulthran avatar Mar 29 '24 14:03 Ulthran