将bash代码转换为snakefile时出错

时间:2019-06-04 20:42:09

标签: indexing pipeline snakemake generate

我想使用STAR生成基因组索引。 bash代码在终端中有效,但我想将其转换为snakefile。

这是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,我需要此文件以供进一步使用。

在snakemake中:

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)

1 个答案:

答案 0 :(得分:0)

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

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}"