为什么 Snakemake 在我的子模块路径中引入空格?

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

我有一个包含使用

conda
singularity
的模块的工作流程。

问题

当我尝试使用

snakemake -c 8 --use-conda --use-singularity
(Snakemake 7.32.4)运行工作流程时,出现以下错误:

WorkflowError in file /home/user/src/project/workflow/Snakefile, line 33:
Failed to open source file /home/user/src/project/workflow/  workflows/ extract /  Snakefile
FileNotFoundError: [Errno 2] No such file or directory: '/home/user/src/project/workflow/  workflows/ extract /  Snakefile '
  File "/home/user/src/project/workflow/Snakefile", line 33, in <module>

问题

为什么我会收到此错误,何时

  1. extract
    模块的f字符串是正确的,并且
  2. 该文件
    ../workflow/workflows/extract/Snakefile
    确实存在吗?

设置

我在 WSL2 内的 Ubuntu 22.04.3 LTS 上的 Miniforge3 conda env 中运行整个事件。

name: project
channels:
  - bioconda
  - conda-forge
dependencies:
  - snakemake=7.32.4
  - singularityce

Snakefile
中的
../workflow/
包括以下相关片段:

MODULES_ROOT = "workflows/"

EXTRACT = "extract"
MODULE_EXTRACT = f"{MODULES_ROOT}{EXTRACT}/"
module extract:
    snakefile:
        f"{MODULE_EXTRACT}Snakefile"
    config: config[EXTRACT]

use rule * from extract as extract_*

我尝试过(无济于事)

  • ls
    d 和
    cat
    d Snakefiles 并检查拼写的正确性
  • 重写了f弦
  • 将 Snakemake 从旧版本更新为上述版本
  • 删除并重新创建 conda 环境
ubuntu path snakemake wsl-2 f-string
1个回答
0
投票

我认为这与fstring有关! 一旦我删除了所有的 f 字符串,它就可以工作了。

These are the environments I am using
(base) [hsher@tscc-11-15 oligoCLIP]$ python --version
Python 3.12.0
(base) [hsher@tscc-11-15 oligoCLIP]$ snakemake --version
7.32.4
© www.soinside.com 2019 - 2024. All rights reserved.