我有一个要在 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 部分),但没有找到对我有帮助的东西,所以如果您有任何可以帮助我的想法,我将非常感激。
提前致谢
您的错误消息表明未找到青鳉,但您称青鳉为_haploid_variant。这意味着脚本 medaka_haploid_variant 存在,但是当它到达第 12 行时,它会尝试调用 medaka(安装在您的 venv 中),如脚本中所示 -> https://github.com/nanoporetech/medaka/blob/master/脚本/medaka_haploid_variant
您也可以在
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"
)。尽管说实话,如果由于计算机上的连接问题(在运行时)而无法安装或下载所需的青鳉模型,这可能会导致青鳉出现问题。