我正在PBS TORQUE集群上运行作业,希望自定义规则repeated for many files的日志脚本
默认命名方案适用于每个规则snakejob.{rulename}.{id}.sh.o26730731
的每个脚本,例如snakejob.all.7.sh.o26730731
,其中只有不同文件的结尾不同(因为它们一个接一个地执行)。这来自snakemake为提交到集群而创建的脚本
我可以使用-e
或-o
选项为qsub
指定一个公共日志目录
我知道配置文件存在,或者可以使用通配符,比如(我必须测试):
snakemake --jobs 10 --cluster "qsub -o logs/{wildcards.file} -e logs/{wildcards.file}"
或者,可以更改snakemake在.snakemake/tmp<hash>
下临时保存的脚本的命名,以实现每个文件日志的唯一命名
我试图在规则中设置日志目录,但当我指定目录(缺少.log
)时,这不起作用:
rule target:
input:
# mockfile approach: https://stackoverflow.com/a/53751654/9684872
# replace? https://snakemake.readthedocs.io/en/stable/snakefiles/rules.html#directories-as-outputs
file = expand(os.path.join(config['DATADIR'], "{file}", "{file}.txt"), file=FILES)
rule execute:
log:
#dir = os.path.join(config['DATADIR'], "{file}") # Building DAG is stuck in endless loop
dir = os.path.join(config['DATADIR'], "{file}.log") # works
params:
logdir = os.path.join(config['DATADIR'], "{file}") #works
那么,您的方法是什么,或者您建议如何最好地解决这个问题,以使用{file}
通配符标识日志
目前没有回答
相关问题 更多 >
编程相关推荐