2017-01-16 5 views
0

Мне интересно, как управлять дорожками в моих Snakefiles. Скажем, у меня есть такая конфигурация:Как получить рабочий путь к каталогу?

current_dir 
current_dir/snakefiles 
current_dir/configfiles 

и я выполняю мои рабочие процессы таким образом:

current_dir$ snakemake -s snakefiles/my_snakefile --configfile configfiles/my_config.yml 

Я знаю, что я могу получить путь к моему Snakefile используя глобальную переменную workflow.snakefile, но я хотел бы получить также:

  • путь к моему конфигу
  • путь, где я исполняющий моему snakefile, например, current_dir

Как достичь этого? Есть ли другие глобальные переменные в Snakemake, о которых я не знаю?

Спасибо

ответ

2

Рабочий каталог установлен через Python. Вы можете получить его с помощью os.getcwd(). Также обратите внимание, что существует канонический способ организации рабочих процессов Snakemake: http://snakemake.readthedocs.io/en/latest/project_info/faq.html#what-is-the-recommended-way-to-distribute-a-snakemake-workflow.

Хотя вы можете, конечно, использовать что-то еще, следуя этой схеме, помогает другим понять ваш рабочий процесс. Конечно, могут быть случаи, когда это не подходит.

+0

Спасибо, действительно, моя организация немного отличается. Я разделяю конфигурационные файлы, рабочие процессы и правила. Данный рабочий процесс может работать с различными конфигурационными файлами, а один файл конфигурации может использоваться различными рабочими процессами. Вот почему я хотел бы получить путь к файлу конфигурации в любом месте (в рабочих процессах и в правилах). – rioualen