0

I'm using snakemake version 5.13.0 inside a fresh conda environment. I want to run snakemake inside a screen (I'm connecting to an RHPC). My pipeline works fine on the RHPC normally but not inside a screen. I'm using the github wrappers version 0.51.0. Some give an error immediately when the rule starts (fi cutadapt and bwa/samse), others work inside the screen (fi fastqc and bwa/aln). Error-message:

RuleException:
CalledProcessError in line 26 of <>/rules/fastq.smk:
Command 'source <>/anaconda3/bin/activate '<>/.snakemake/conda/adcaa278'; set -euo pipefail;  python <>/.snakemake/scripts/tmp5lehgfn3.wrapper.py' returned non-zero exit status 1.
  1. The first line works: source /<>/anaconda3/bin/activate '/<>/.snakemake/conda/adcaa278'. It activates an environment.
  2. The second line gives no error: set -euo pipefail.
  3. With the third line: python <>/.snakemake/scripts/tmp5lehgfn3.wrapper.py'. My screen ends and cannot be resumed.

With the cutadapt wrapper. I'm getting also this error:

Traceback (most recent call last):
  File "/<>/.snakemake/scripts/tmpwzmtyh5y.wrapper.py", line 3, in <module>
    emake-wrappers/raw/0.51.0/bio/cutadapt/seq\xe3ub.'); from snakemake.logging import logger; logger.printshellcmds = False; __real_file__ = __file__; __file__ = '/<>/https:/github.com/snakemake/snakemake-wrappers/raw/0.51.0/bio/cutadapt/se/wrapper.py';
  File "/<>/.linuxbrew/Cellar/python/2.7.11/lib/python2.7/pickle.py", line 1388, in loads
    return Unpickler(file).load()
  File "/<>/.linuxbrew/Cellar/python/2.7.11/lib/python2.7/pickle.py", line 864, in load
    dispatch[key](self)
  File "/<>/.linuxbrew/Cellar/python/2.7.11/lib/python2.7/pickle.py", line 892, in load_proto
    raise ValueError, "unsupported pickle protocol: %d" % proto
ValueError: unsupported pickle protocol: 3

My colleague helped me out. It turns out I have a different $PATH inside my screen than outside my screen. Inside my screen it called my linuxbrew python instead of my conda python while outside my screen the order in my $PATH is the other way around.

Lisa R
  • 11
  • 3
  • You could send to to the background and run it there: https://stackoverflow.com/questions/954302/how-to-make-a-programme-continue-to-run-after-log-out-from-ssh. But it really should work with screen... – Maarten-vd-Sande Apr 09 '20 at 14:41
  • Is it a conda issue? Maybe screen isn't activating your conda module properly? Can you run the command in the shell, line by line and see where it errors? – Troy Comi Apr 10 '20 at 12:18
  • I've edited the post to hopefully answer your question. – Lisa R Apr 14 '20 at 09:54

0 Answers0