【问题标题】:Error when converting bash code to snakefile将 bash 代码转换为蛇文件时出错
【发布时间】:2019-06-04 20:42:09
【问题描述】:

我想使用 STAR 生成基因组索引。 bash 代码在终端中工作,但我想将其转换为蛇文件。

这是 bash 代码:

STAR --runThreadN 4 --runMode genomeGenerate --genomeDir star --genomeFastaFiles Drosophila_melanogaster.BDGP6.22.dna.toplevel.fa --sjdbGTFfile bdgp6/Drosophila_melanogaster.BDGP6.95.gtf

运行 bash 代码后,它会在 star 目录中生成多个文件。其中一个文件名为genomeParameters.txt,我需要此文件以供进一步使用。

在蛇形中:

rule index:
    input:
       fasta = "Drosophila_melanogaster.BDGP6.22.dna.toplevel.fa"
       gtf = "bdgp6/Drosophila_melanogaster.BDGP6.95.gtf"

    output:
        "star"
    shell:
        " STAR --runThreadN 4 --runMode genomeGenerate --genomeDir {output} --genomeFastaFiles {input.fasta} --sjdbGTFfile {input.gtf}"

错误:

SyntaxError in line 10 of /data/storix2/student/Thema11/dme/projectThema11/generateGenomeIndex:
Command must be given as string after the shell keyword. (generateGenomeIndex, line 10)

【问题讨论】:

  • 这个异常来自解析器,但我没有发现输入文件之间缺少逗号的问题。请确认提供的代码是您运行的程序的精确复制/粘贴。
  • 我只是在参数之间添加了一个逗号,但仍然出现错误。 @DmitryKuzminov
  • 请提供一个有助于重现问题的最小工作示例。我想我们在你的问题中看到的并不是你实际运行的。
  • @DmitryKuzminov 上面显示的代码实际上是我正在运行的。但我刚刚解决了这个问题!错误是由缩进引起的。
  • 在对我的snakemake 文件进行一些编辑后,我也遇到了这个错误。在我的情况下,这是由于使用制表符或空格进行缩进的不一致引起的。我认为snakemake处理这个问题真的很糟糕,给我带来了很多麻烦。

标签: indexing pipeline snakemake generate


【解决方案1】:

第一个输入文件后面需要一个逗号:

input:
   fasta = "Drosophila_melanogaster.BDGP6.22.dna.toplevel.fa",
   gtf = "bdgp6/Drosophila_melanogaster.BDGP6.95.gtf"

但是,您看到的错误不是我通常在缺少逗号时遇到的错误。我想知道命令开头的空格是否导致问题。您也可以尝试删除它:

shell:
    "STAR --runThreadN 4 --runMode genomeGenerate --genomeDir {output} --genomeFastaFiles {input.fasta} --sjdbGTFfile {input.gtf}"

【讨论】:

  • 不幸的是,去掉空格并在输入参数之间添加逗号后出现同样的错误。
  • @Mar(迟到的回复)这可能只是混合空格和制表符作为缩进的情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-14
  • 1970-01-01
  • 2022-08-19
  • 2020-12-25
  • 2013-02-02
  • 2012-11-13
  • 1970-01-01
相关资源
最近更新 更多