将bash代码转换为snakefile时出错

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

我想使用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)
indexing pipeline snakemake generate
2个回答
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}"

0
投票

我在vscode中写入时使用的缩进是空格,然后当我在集群上更改它并写入tab时遇到了这个问题,但是当我将tab更改为空格时问题解决了。

© www.soinside.com 2019 - 2024. All rights reserved.