shell
is just a helper function to make it easier to call command-line arguments from snakemake. Learning snakemake can be overwhelming, and learning the fine intricacies of Python’s os.system
and subprocess
is unnecessarily complicating. The snakemake shell
command does a couple sanity checks, sets some environment variables e.g. the number of threads the command can use and some other “small” stuff, but under the hood just calls subprocess.Popen
on your command. Both options should work, but since you are writing a snakemake wrapper, it’s probably slightly better to use shell as it is designed to be used in snakemake.
CLICK HERE to find out more related problems solutions.