Я не совсем уверен, правильно ли я понимаю. Я предполагаю, что вы не хотите копировать ввод каждого правила в определенную директорию, выполните правило, а затем скопируйте вывод обратно в другую файловую систему, так как это приведет к перемещению большого количества ненужных файлов. Поэтому в первой половине ответа я предполагаю, что перед выполнением вы перемещаете свои файлы в /scratch/mydir
.
Я полагаю, что вы могли бы использовать команду --directory
(https://snakemake.readthedocs.io/en/stable/executing/cli.html). Однако я считаю, что это плохо работает, так как с тех пор змеиному мастеру трудно находить config.yaml
и samples.tsv
.
Я могу решить эту проблему, просто добавив рабочий каталог перед моими путями в каждом правиле. .
rule example:
input:
config["cwd"] + "{sample}.txt"
output:
config["cwd"] + "processed/{sample}.txt"
shell:
"""
touch {output}
"""
Итак, все, что вам нужно сделать, это изменить cwd в вашем config.yaml
.
local:
cwd: ./
slurm:
cwd: /scratch/mydir
Затем вам придется вручную скопировать их обратно в вашу долговременную файловую систему или создать правило, которое сделает это за вас.
Теперь, если вы все же хотите скопировать свои файлы из файловой системы A - > B, сделай свое правило, а затем перемести результат из B -> A, тогда я думаю, что ты хочешь использовать правила теней . Я думаю, что документы правильно объясняют, как использовать это, поэтому я просто даю ссылку:).