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.
- The first line works: source /<>/anaconda3/bin/activate '/<>/.snakemake/conda/adcaa278'. It activates an environment.
- The second line gives no error: set -euo pipefail.
- 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.