根据Nextflow文档,我将awk脚本放在bin/
文件夹中。一些脚本共享相同的功能,因此我只使用通常使用的awk函数编写了文件:
@include "relative/path/to/lib.awk"
但是因为脚本在nextflow工作目录中运行,所以相对路径不再起作用。我也尝试将库文件放在bin/
中,但效果也不佳。
我应该如何进行?我不想复制/粘贴脚本中的函数,也不想硬编码绝对路径。
答案 0 :(得分:0)
感谢@Pallie提供有关workflow.projectDir
的提示。有关此变量的文档为here(我以为我到处都是,尚不清楚我能做到这一点),这个答案也有帮助:https://stackoverflow.com/a/28463193/2849598。
awk可以在AWKPATH
中加载库文件,而我的文件在lib/
中,所以对于下一个流程:
process my_process {
input:
path input from input_channel
output:
path "output.txt"
script:
"""
export AWKPATH="$workflow.projectDir/lib"
script.awk ${input} > output.txt
"""
}
在脚本的顶部,我像这样调用库文件
@include "my_functions.awk"