如何给 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
所以我有一个用 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