所以我有一个在shell中编写的管道,它在三个文件夹中循环,然后是一个内部循环,它在文件夹中的文件中循环。
下一步,我有一个snakemake文件,它接受一个输入文件夹和一个输出文件夹。为了试运行,我给出了snakemake文件中的文件夹路径。所以我想知道是否有任何方法可以显式地给出输入和输出文件夹路径。
例如。snakemake --cores 30 -s trial.snakemake /path/to/input /path/to/output
因为我想根据主循环改变输入和输出。
我尝试了import sys
和使用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
但是上面的方法不起作用。有什么办法能做到吗。我对造蛇真的很陌生。
提前谢谢你。
一种有效的方法是将文件夹结构显式地合并到Snakefile中。例如,你可以在Snakefile中使用参数的内容,例如example_path
,然后通过config
:
snakemake --config example_path_in=/path/to/input example_path_out=/path/to/output