В дополнение к комментарию Троя:
Вы указываете в качестве ввода своего правила grep_gtf
каталог. Поскольку этот каталог, вероятно, уже существует, правило stringtie
не нужно выполнять перед запуском grep_gtf
.
Использование каталога в качестве входных данных не очень хорошая идея. Если вам нужны выходные данные правила stringtie
перед выполнением правила grep_gtf
, я предлагаю указать выходные файлы правила stringtie
в качестве ввода правила grep_gtf
.
Так что ваше правило grep_gtf
должно быть что-то вроде:
rule grep_gtf:
input:
expand(STRINGTIE_DIR + "/{sample}/{sample}Aligned.sortedByCoord.out.gtf", sample=SAMPLES)
output:
paths = GTF_DIR + "path_samplesGTF.txt"
shell:
"find {STRINGTIE_DIR} | grep .gtf > {output.paths}"
РЕДАКТИРОВАТЬ:
Я думаю, что есть плохая копия / вставка в правиле all
, где есть дважды STAR_DIR
:
expand(STAR_DIR + STAR_DIR + "output/{sample}/{sample}Aligned.sortedByCoord.out.bam",sample=SAMPLES), #STAR
Я также думаю, что существует недопонимание концепции «рабочего процесса» змеиного мастера. Вам не нужно указывать выходные данные всех правил в правиле all
. Вам нужно только указать последний файл рабочего процесса. Snakemake решит, какие правила нужно запустить, чтобы добиться создания окончательного файла. Я не очень понимаю, почему ваш змейщик не хочет создавать файлы gtf, поскольку вы запрашиваете их в правиле all
, но я понимаю, почему правилу grep_gtf
не требуется вывод правила stringtie
для запуска.