在我的 nextflow 管道中使用 conda 工具

问题描述 投票:0回答:2

我有一个要在 nextflow 中添加的流程,其中我使用了一个名为 medaka_haploid_variant 的工具。 我使用 conda 安装了这个工具,现在我有一个名为 secondary_part 的环境,其中包含这个工具。

aziz@aziz-VirtualBox:~/pipeline$ medaka_haploid_variant
medaka_haploid_variant : commande introuvable

aziz@aziz-VirtualBox:~/pipeline$ conda activate second_part
aziz@aziz-VirtualBox:~/pipeline$ medaka_haploid_variant
medaka 1.8.0

如您所见,该工具在该环境中安装良好。 不管怎样,我现在想在我的 nextflow 脚本中使用这个工具,我通常对这种类型的工具所做的就是指定感兴趣的脚本的所有路径:

script:
"""
/home/aziz/anaconda3/envs/second_part/bin/medaka_haploid_variant -i fastq -r reference -o output_folder
"""

这对于同一管道中使用的许多其他工具(Kraken2、samtools、minimap2 等)来说非常有效,但是当涉及到 medaka 时,我收到此错误: 命令错误:

  /home/aziz/anaconda3/envs/second_part/bin/medaka_haploid_variant: ligne 12: medaka : commande introuvable

但是当我激活环境然后运行管道时,该工具完美运行并且我得到了结果。

我觉得这很奇怪,因为这种方法适用于所有其他工具。 我尝试查看 nextflow 文档(conda 部分),但没有找到对我有帮助的东西,所以如果您有任何可以帮助我的想法,我将非常感激。

提前致谢

bash anaconda bioinformatics anaconda3 nextflow
2个回答
0
投票

您的错误消息表明未找到青鳉,但您称青鳉为_haploid_variant。这意味着脚本 medaka_haploid_variant 存在,但是当它到达第 12 行时,它会尝试调用 medaka(安装在您的 venv 中),如脚本中所示 -> https://github.com/nanoporetech/medaka/blob/master/脚本/medaka_haploid_variant


0
投票

您也可以在

conda
指令中指定现有环境,只需将路径放入您的环境即可。这样你的过程可能看起来像这样:

process medaka_haploid_variant {
    conda "/home/aziz/anaconda3/envs/second_part"
    input:
        tuple path(fastq), path(reference)
    output:
        path("output_folder")
    script:
    """
    medaka_haploid_variant -i fastq -r reference -o output_folder
    """

但是,该脚本仅适用于此预先创建的环境。如果您的环境中只有很少的依赖项,那么可能值得动态创建环境 - 通过提供

environment.yml
文件或直接 conda 包 (
conda "bioconda::medaka"
)。尽管说实话,如果由于计算机上的连接问题(在运行时)而无法安装或下载所需的青鳉模型,这可能会导致青鳉出现问题。

© www.soinside.com 2019 - 2024. All rights reserved.