snakemake: копирование файла в несколько папок - PullRequest
0 голосов
/ 06 апреля 2020

Я новичок в змейке. У меня есть правило, чтобы скопировать файл в несколько папок. Папки сделаны в python.
Я, должно быть, неправильно понимаю что-то о работе с несколькими целями. Следующий код при запуске с «Snakemake practice_phased_reversed.vcf» возвращает «Нет правил для создания practice_phased_reversed.vcf»

s=['k_1','k2_10']
fullfs = []
import os
cdir = os.getcwd()
for f in fs:
        path = os.path.join(cdir,f)
        fullfs.append(path)
        try:
                os.mkdir(path)
        except:
                pass
rule r1:
        input:
                "{basename}_phased_reversed.vcf"
        output:
                expand("{f}/{{basename}}_phased_reversed.vcf",f=fullfs)
        shell:
               "cp {input} {output}"


1 Ответ

0 голосов
/ 10 апреля 2020

Благодаря Maarten-vd-Sande. Теперь это работает с использованием «snakemake», т.е. без передачи имени целевого файла.

dirs=['k_1','k2_10']
rule all:
        input:
                expand("{f}/practice_phased_reversed.vcf",f=dirs)
rule r1:
        input:
                "practice_phased_reversed.vcf"
        output:
                "{f}/practice_phased_reversed.vcf"
        shell:
               "cp {input} {output}"

Но я все еще что-то упускаю. Я должен быть в состоянии вызвать это с целью, то есть "snakemake practice_phased_reversed.vcf" Спасибо за любую помощь.

...