如何在 Nextflow 中 运行 Python 编写脚本

How to run Python Script in Nextflow

我是 Nextflow 的新手,我尝试在 Nextflow 中 运行 Python 脚本。所以我将 Python 脚本存储在与 Nextflow 管道相同的文件夹中并尝试 运行 它但我总是收到此错误:.command.sh: line 2: ./example.py: No such file or directory。 有没有人遇到同样的问题并且能够解决?

我的流程是这样的:

#!/usr/bin/env nextflow

input_ch = Channel.fromPath('data/*.txt')

process foo {

    input:
    file x from input_ch

    output:
    file "$x" into outputt_ch

    """
    ./example.py ${x}
    """

}

P.S.:我的 Python 脚本可以从终端执行!

提前致谢!

Nextflow 在单独的工作目录中运行每个任务。因此 ./example.py 将不起作用。您必须使用 example.py 并使脚本可通过系统访问 PATH 或将其复制到项目 bin/ 目录中。

另一个解决方案是使用 projectDir 变量。 例如,

#!/usr/bin/env nextflow

input_ch = Channel.fromPath('data/*.txt')
project_dir = projectDir

process foo {

    input:
    file x from input_ch

    output:
    file "$x" into outputt_ch

    """
    python $project_dir/example.py ${x}
    """

}