Как включить функции из другого файла в сценарий 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"