如何给 Snakemake 文件明确的输入和输出?

How to give explicitly input and output to Snakemake file?

所以我有一个用 shell 编写的管道,它循环遍历三个文件夹,然后是一个内部循环,循环遍历文件夹内的文件。

下一步,我有一个 snakemake 文件,它有一个输入文件夹和一个输出文件夹。为了试用 运行 我在 snakemake 文件中给出了文件夹路径。 所以我想知道有什么方法可以明确地给出输入和输出文件夹路径。

例如 snakemake --cores 30 -s trial.snakemake /path/to/input /path/to/output

因为我想根据主循环改变输入输出。

我尝试 import sys 并在 snakemake 文件中使用 sys.argv[1]sys.argv[2] 但它不起作用。

下面是我的管道的片段,现在需要三个文件夹,ABC_Samples、DEF_Samples、XYZ_Samples

for folder in /path/to/*_Samples
do
  folderName=$(basename $folder _Samples)
  mkdir -p /path/to/output/$fodlerName
  for files in $folder/*.gz
  do
    /
     do something
    /
  done
  snakemake --cores 30 -s trial.snakemake /path/to/output/$fodlerName /path/to/output2/
done

但是上面的方法不行。那么有什么办法可以做到这一点。我真的是 snakemake 的新手。

提前致谢。

一种有效的方法是将文件夹结构明确地合并到您的 Snakefile 中。例如,您可以使用参数的内容,例如example_path, 在 Snakefile 中然后通过 config:

传递
snakemake --config example_path_in=/path/to/input example_path_out=/path/to/output