Ошибка при преобразовании кода bash в snakefile - PullRequest
0 голосов
/ 04 июня 2019

Я хочу создать индекс генома с помощью 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 голосов
/ 05 июня 2019

Вам нужна запятая после первого входного файла:

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