首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“错误:没有这样的文件或目录”,用于必须首先生成的输入。

“错误:没有这样的文件或目录”,用于必须首先生成的输入。
EN

Stack Overflow用户
提问于 2020-11-24 12:19:01
回答 1查看 511关注 0票数 1

我对STAR有两个规则,STAR_genome为STAR规则做了一些索引,因此STAR的输入是STAR_genome的直接输出-到目前为止还很简单。但是,当我尝试运行这个程序时,STAR_genome规则将被忽略(没有在作业计数中列出),并得到以下异常:

FileNotFoundError: Errno 2没有这样的文件或目录:‘.星形/花椰菜/基因组/genome.ok’

我不明白为什么snakemake会忽略生成规则而只会抱怨缺少的文件,因为它甚至选择了应该生成它的规则的路径。

代码语言:javascript
复制
rule STAR_genome:
    input: genome=lambda wildcards: config[wildcards.species]["genomefile"]
    output: ok=path.join(STAR_DIR, "{species}", "genome", "genome.ok")
    threads: 32
    envmodules:
        config["STAR"][0],
        config["STAR"][1]
    script:
        "scripts/Trinity_GG/STAR_genome.py"

############################################################################

rule STAR:
    input:
         genome=rules.STAR_genome.output.ok,
         r1=rules.trim_galore.output.r1,
         r2=rules.trim_galore.output.r2
    output:
        bam=path.join(STAR_DIR, "{species}_{rep}_Aligned.sortedByCoord.out.bam")
    threads: 32
    envmodules:
        config["STAR"][0],
        config["STAR"][1]
    script:
        "scripts/Trinity_GG/STAR.py"

这是完整的回溯,以防万一会有帮助。

代码语言:javascript
复制
    Traceback (most recent call last):
  File "/cluster/easybuild/broadwell/software/mflow/0.0-foss-2019b-Python-3.7.4/lib/python3.7/site-packages/snakemake-5.27.4-py3.7.egg/snakemake/__init__.py", line 751, in snakemake
    keepmetadata=keep_metadata,
  File "/cluster/easybuild/broadwell/software/mflow/0.0-foss-2019b-Python-3.7.4/lib/python3.7/site-packages/snakemake-5.27.4-py3.7.egg/snakemake/workflow.py", line 1000, in execute
    success = scheduler.schedule()
  File "/cluster/easybuild/broadwell/software/mflow/0.0-foss-2019b-Python-3.7.4/lib/python3.7/site-packages/snakemake-5.27.4-py3.7.egg/snakemake/scheduler.py", line 444, in schedule
    run = self.job_selector(needrun)
  File "/cluster/easybuild/broadwell/software/mflow/0.0-foss-2019b-Python-3.7.4/lib/python3.7/site-packages/snakemake-5.27.4-py3.7.egg/snakemake/scheduler.py", line 731, in job_selector_greedy
    c = list(map(self.job_reward, jobs))  # job rewards
  File "/cluster/easybuild/broadwell/software/mflow/0.0-foss-2019b-Python-3.7.4/lib/python3.7/site-packages/snakemake-5.27.4-py3.7.egg/snakemake/scheduler.py", line 814, in job_reward
    input_size = job.inputsize
  File "/cluster/easybuild/broadwell/software/mflow/0.0-foss-2019b-Python-3.7.4/lib/python3.7/site-packages/snakemake-5.27.4-py3.7.egg/snakemake/jobs.py", line 378, in inputsize
    self._inputsize = sum(f.size for f in self.input)
  File "/cluster/easybuild/broadwell/software/mflow/0.0-foss-2019b-Python-3.7.4/lib/python3.7/site-packages/snakemake-5.27.4-py3.7.egg/snakemake/jobs.py", line 378, in <genexpr>
    self._inputsize = sum(f.size for f in self.input)
  File "/cluster/easybuild/broadwell/software/mflow/0.0-foss-2019b-Python-3.7.4/lib/python3.7/site-packages/snakemake-5.27.4-py3.7.egg/snakemake/io.py", line 239, in wrapper
    return func(self, *args, **kwargs)
  File "/cluster/easybuild/broadwell/software/mflow/0.0-foss-2019b-Python-3.7.4/lib/python3.7/site-packages/snakemake-5.27.4-py3.7.egg/snakemake/io.py", line 254, in wrapper
    return func(self, *args, **kwargs)
  File "/cluster/easybuild/broadwell/software/mflow/0.0-foss-2019b-Python-3.7.4/lib/python3.7/site-packages/snakemake-5.27.4-py3.7.egg/snakemake/io.py", line 553, in size
    return self.size_local
  File "/cluster/easybuild/broadwell/software/mflow/0.0-foss-2019b-Python-3.7.4/lib/python3.7/site-packages/snakemake-5.27.4-py3.7.egg/snakemake/io.py", line 558, in size_local
    self.check_broken_symlink()
  File "/cluster/easybuild/broadwell/software/mflow/0.0-foss-2019b-Python-3.7.4/lib/python3.7/site-packages/snakemake-5.27.4-py3.7.egg/snakemake/io.py", line 563, in check_broken_symlink
    if not self.exists_local and os.lstat(self.file):
FileNotFoundError: [Errno 2] No such file or directory: '[...]/Cauliflower_Test/STAR/cauliflower/genome/genome.ok'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-24 12:58:39

在命令snakemake -调试-dag的帮助下,我发现在配置调用中出现了一个错误。

代码语言:javascript
复制
input: genome=lambda wildcards: config[wildcards.species]["genomefile"]

正确的名称是"genome_file“,但没有提到它,但是调试-dag声明:

代码语言:javascript
复制
    candidate job STAR
    wildcards: species=cauliflower, rep=A
    file [...]/Cauliflower_Test/Alignmentscores/cauliflower_align_rate.txt:
    No producers found, but file is present on disk.
    Error:
      KeyError: 'genomefile'
    Wildcards:
      species=cauliflower
    Traceback:
      File "[...]/workflows/Trinity_GG.smk", line 9, in <lambda>

希望这能帮到别人,花了我几个小时和很多神经.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64986357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档