Как включить функции из другого файла в сценарий awk с помощью nextflow

Согласно документации Nextflow, я помещаю свои сценарии awk в bin/папка. Некоторые скрипты используют одни и те же функции, поэтому я написал файл только с функциями awk, которые я обычно включаю, используя:

@include "relative/path/to/lib.awk"

Но поскольку скрипт выполняется в рабочем каталоге nextflow, относительный путь больше не работает. Я попытался поместить файл библиотеки вbin/ тоже, но это не сработало.

Как мне продолжить? Я не хочу копировать / вставлять функции в скрипты, я также не хочу жестко указывать абсолютный путь.

1 ответ

Решение

Спасибо @Pallie за подсказку о workflow.projectDir. Документация по этой переменной находится здесь (я думал, что смотрел везде, было непонятно, что я могу это сделать), этот ответ также помог: /questions/31391569/vklyuchit-biblioteku-funktsij-v-awk/31391574#31391574.

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"
Другие вопросы по тегам