如何使用nextflow从awk脚本中的另一个文件导入函数

如何使用nextflow从awk脚本中的另一个文件导入函数,awk,nextflow,Awk,Nextflow,根据Nextflow文档,我将awk脚本放在bin/文件夹中。一些脚本共享相同的函数,因此我编写了一个文件,其中仅包含awk函数,我通常使用: @include "relative/path/to/lib.awk" 但是由于脚本在nextflow工作目录中运行,因此相对路径不再工作。我也试图将库文件放入bin/中,但效果不太好 我应该如何进行?我不想复制/粘贴脚本中的函数,也不想硬编码绝对路径。感谢@Pallie提供有关workflow.projectDir的提示。关于这个变量的文档是(我想我

根据Nextflow文档,我将awk脚本放在
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很高兴能提供帮助