如何使用nextflow从awk脚本中的另一个文件导入函数
根据Nextflow文档,我将awk脚本放在如何使用nextflow从awk脚本中的另一个文件导入函数,awk,nextflow,Awk,Nextflow,根据Nextflow文档,我将awk脚本放在bin/文件夹中。一些脚本共享相同的函数,因此我编写了一个文件,其中仅包含awk函数,我通常使用: @include "relative/path/to/lib.awk" 但是由于脚本在nextflow工作目录中运行,因此相对路径不再工作。我也试图将库文件放入bin/中,但效果不太好 我应该如何进行?我不想复制/粘贴脚本中的函数,也不想硬编码绝对路径。感谢@Pallie提供有关workflow.projectDir的提示。关于这个变量的文档是(我想我
bin/
文件夹中。一些脚本共享相同的函数,因此我编写了一个文件,其中仅包含awk函数,我通常使用:
@include "relative/path/to/lib.awk"
但是由于脚本在nextflow工作目录中运行,因此相对路径不再工作。我也试图将库文件放入bin/
中,但效果不太好
我应该如何进行?我不想复制/粘贴脚本中的函数,也不想硬编码绝对路径。感谢@Pallie提供有关
workflow.projectDir
的提示。关于这个变量的文档是(我想我到处都找过了,不清楚我能做什么),这个答案也有帮助:
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"
你能使用workflow.projectDir/path/to/awk吗?谢谢你的提示,我不知道工作流。projectDir很高兴能提供帮助